Golang で YouTube Data API を使用してチャンネル・動画の詳細情報を取得します。
Requirement
- Youtube API Key
- Golang 1.11
準備
- ライブラリのインストール
$ go get google.golang.org/api/googleapi/transport
$ go get google.golang.org/api/youtube/v3
手順
1. コードダウンロード
$ git clone https://github.com/Doarakko/api-challenge
$ cd api-challenge/youtube-data-api
2. YouTube API Key を入力
const developerKey = "your key"
3. チャンネル ID・ を入力
- チャンネルホーム URL: チャンネル ID
- 動画 URL: 動画 ID
4. 実行
- チャンネル詳細情報取得
$ go run print-channel-info.go
【チャンネル情報】
channel id: UC4YaOt1yT-ZeyB0OmxHgolA
チャンネル名:
A.I.Channel
説明: はじめまして! キズナアイです(o・v・o)♪
チャンネル登録よろしくお願いしますლ(´ڡ`ლ)
---
2019/05/15リリース決定!
"Kizuna AI 1st アルバム「hello, world」" 予約開始!
https://2018hello.world/album/
---
A.I.Channelでは字幕作成にご協力してくれる方を募集しています!
どの言語でも大歓迎です!ご協力よろしくお願いします!
♡ゲーム専門サブチャンネルもよろしくお願いします♡
【A.I.Games】
https://goo.gl/Xn7u84
【Twitter】
https://twitter.com/aichan_nel
【インスタグラム】
https://www.instagram.com/a.i.channel_official/
【Facebook】
https://www.facebook.com/Kizuna-AIofficial-773286456183351/
【公式WEBサイト】
http://kizunaai.com/
♡A.I.Channelヒストリー♡
2016.12.01 チャンネル開設
2017.01.16 チャンネル停止…
2017.02.02 登録者10,000人達成
2017.02.04 チャンネル完全復活!
2017.02.21 登録者50,000人達成
2017.02.24 登録者100,000人達成
2017.12.01 チャンネル開設一周年♡
2017.12.17 登録者1,000,000人達成
2018.07.15 登録者2,000,000人達成
2018.12.01 チャンネル開設二周年♡
サムネイルURL: https://yt3.ggpht.com/a-/AAuE7mBCUSZyR2ynwssHlevU-6qwlokU8M-7YqU2cg=s800-mo-c-c0xffffffff-rj-k-no
playlist id: UU4YaOt1yT-ZeyB0OmxHgolA
総再生回数: 204274665
チャンネル登録者数: 2526132
動画数: 592
- 動画詳細情報取得
$ go run print-video-info.go
【動画情報】
video id: wT_GFTDpUno
タイトル: AIが一言物申す!
説明:
とにかく言いたいことがある!
今日は思いっきり言わせてもらいます!
みんなよーーく聞いてください!
これが私の! 今の気持ちですからーーーー!!!
-------------------------------------------------------------------------------
チャンネル登録よろしくお願いします(o・v・o)♪
https://goo.gl/uMP1DM
ゲームチャンネル「A.I.Games」もよろしくお願いします!
♡A.I.Games♡
https://goo.gl/Xn7u84
キズナアイの、キズナアイによる、みんなのためのゲームブログ!
♡A.I.Gamers Info♡
https://www.aigamers.info/
動画で描いたイラストはこちらにUPしていきます!
♡pixiv♡
https://pixiv.me/kizunaai0630
♡Twitter♡
https://twitter.com/aichan_nel
♡Instagram♡
https://www.instagram.com/a.i.channel_official/
♡Facebook♡
https://www.facebook.com/Kizuna-AIofficial-773286456183351/
♡weibo♡
https://www.weibo.com/aichannelchina?refer_flag=1005055014_
♡WEBサイト♡
http://kizunaai.com/
サムネイルURL: https://i.ytimg.com/vi/wT_GFTDpUno/hqdefault.jpg
再生回数: 3418115
コメント数: 8709
高評価数: 85746
低評価数: 2955
channel id: UC4YaOt1yT-ZeyB0OmxHgolA
アップロード日時: 2018-01-05 10:00:07 +0000 UTC
解説
call := service.Videos.List("id,snippet,Statistics").
List
内の引数はこちらのパラメータ part
のことです。
こちらにある JSON に対応しています。
指定したもののみレスポンスに含まれます。
試しに、指定していない brandingSettings
にあるチャンネルのキーワードを出力するようにプログラムを修正。
keyword := item.BrandingSettings.Channel.Keywords
fmt.Printf("channel id: %v\n\nチャンネル名: \n%v\n\n説明: %v\n\nサムネイルURL: %v\n\nplaylist id: %v\n\n総再生回数: %v\n\nチャンネル登録者数: %v\n\n動画数: %v\nチャンネルキーワード%v\n",
id,
name,
description,
thumbnailURL,
playlistID,
viewCount,
subscriberCount,
videoCount,
keyword,
)
$ go run print-channel-info.go
【チャンネル情報】
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1459a66]
goroutine 1 [running]:
main.printChannelInfo(0x15aa9f0, 0x18)
// 省略
print-channel-info.go:46 +0x3f6
main.main()
// 省略
print-channel-info.go:64 +0x93
exit status 2
おわりに
今回取ってきた情報以外にもいろいろとあるので、ドキュメント見ながら試して見てください。
brandingSettings
あたりは面白そうです。