YouTubeの配信情報をひたすら取得する方法です。いつもの備忘録と整理です。
#前提知識と条件
・Google認証をして、AccessTokenとRefreshTokenを取得出来る
・取得したTokenを使ってAPIを投げることが出来る
・チャンネルIDをリストやDBで持っている
これを見てやろうと思った方は、この前提を自身で用意してください。
チャンネルIDとは、YouTubeのチャンネルページを開いた時にURLでUCから始まるIDのことです。
例:https://www.youtube.com/channel/ UC-rEbtxBcgRCD53DzoLVGPA
#YouTubeの配信情報を集めるには?
YouTubeDataAPI(v3)とYouTubeLiveStreamingAPIを使います。
YouTubeDataApi(v3)公式リファレンスとYouTubeLiveStreamingApi公式リファレンスを熟読しましょう、結構使える内容が見えてきます。
##Search:list
リファレンスはここ。
GETするURL
https://www.googleapis.com/youtube/v3/search
投げるRequest
part | channelId | eventType | type |
---|---|---|---|
snippet | [チャンネルID] | upcoming | video |
eventTypeは下記で分類されてます。
completed – 完了したブロードキャストのみを含めます。
live – アクティブなブロードキャストのみを含めます。
upcoming – 今後配信予定のブロードキャストのみを含めます。
なので、ライブ配信中だけを取得したい場合は「live」を指定します。
返るResponseで使うものは「videoId」です。snippetで配信タイトル等が取れるのですが、ここからはStreamingAPIを使って行きましょう。
ただ、LiveChatIdについてはここでしか取れないので保管しておきましょう。
余談ですが、この方法でしかLiveのIDは取れないみたいです。この方法はTwitterで教えていただきました、感謝です。
##LiveBroadcasts: list
リファレンスはここ。
GETするURL
https://www.googleapis.com/youtube/v3/liveBroadcasts
投げるRequest
part | id |
---|---|
snippet | [LiveID] |
[liveID]はSearch:listで
返るResponseで使うものはitemsの中に入っている下記の通り。
- snippet
- publishedAt:登録日
- title:ライブタイトル
- description:ライブ概要欄
- thumbnails:サムネイル
- default
- url:サムネイルURL(120x90)
- medium
- url:サムネイルURL(320x180)
- high
- url:サムネイルURL(480x360)
- default
- scheduledStartTime
##LiveChatMessages: list
おまけに配信コメントの取得方法も記載しておく。
リファレンスはここ。
GETするURL
https://www.googleapis.com/youtube/v3/liveChat/messages
投げるRequest
part | liveChatId |
---|---|
snippet | [liveChatID] |
LiveBroadcastsで取得したSearch:listで取得した(誤ってました)LiveChatIdをここに入れてあげると配信コメントを取得される。
##これで大体取れた
あとはひたすら取得するだけです。
チャンネルIDを入れて、配信予定だった場合、BroadcastsのAPIに入れて投げるだけ。
ついでに、コメント取得もしたかったら、LiveChatMessagesにも投げてあげましょう。
出来ること、大分広がったと思います。