LoginSignup
65
64

More than 3 years have passed since last update.

YouTubeの配信情報をひたすら取得するAPIを整理した

Last updated at Posted at 2019-06-11

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公式リファレンスを熟読しましょう、結構使える内容が見えてきます。

構成はこんな感じです。
image.png

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)
    • 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にも投げてあげましょう。
出来ること、大分広がったと思います。

65
64
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
65
64