概要
Youtube Data API v3 と Youtube Live Streaming API を使います
コメントではなくチャットを取得します
コメントは動画の下に表示される非同期のメッセージでチャットはライブ中に右に表示されるリアルタイムのメッセージになります
当然ですが今回取得する方法はライブ中でなければ取得できないので注意してください
環境
- macOS 11.1
- Youtube Data API v3
- Youtube Live Streaming API
事前準備: Youtube API Key の取得
こちらの方法で取得しましょう
GCP の登録が必須です
事前準備: Youtube Data API v3 の有効化
こちらの方法で有効化してください
Youtube Data API v3 を使って activeLiveChatId を取得する
curl \
'https://youtube.googleapis.com/youtube/v3/videos?part=liveStreamingDetails&id=xxxxxxxxxxx&key=AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Accept: application/json' \
--compressed
id はライブ配信中の動画 ID になります
ブラウザアクセスして URL バーに表示される ID になります
レスポンス内の JSON に含まれる activeLiveChatId
をメモしておきます
なおライブ配信中でないと activeLiveChatId
は含まれないので activeLiveChatId
がない場合はライブ配信中になっているか確認しましょう
Youtube Streaming API と activeLiveChatId を使ってチャット情報を取得する
curl \
'https://youtube.googleapis.com/youtube/v3/liveChat/messages?liveChatId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&part=authorDetails%2Csnippet&key=AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Accept: application/json' \
--compressed
part は authorDetails
と snippet
をカンマ区切りで指定しましょう
これで
トラブルシューティング: quotaExceeded になる場合は
なぜか quota を超えていないのに quotaExceeded になる場合があります
自分は新規でプロジェクトを作成し直してキーを作成しました
おまけ: API Explorer を活用しよう
今回紹介した curl コマンドは API Explorer を使えば簡単に作成できます
curl 以外にも Python や Java のコードも作成できるのでプログラムとして使うこともできます
Youtube Data API v3: Videos: list
https://developers.google.com/youtube/v3/docs/videos/list
Youtube Live Streaming API: LiveChatMessages: list
https://developers.google.com/youtube/v3/live/docs/liveChatMessages/list?hl=en
最後に
コードに落とす前に curl で手動で動作確認しておくとプログラミングするときに流れを理解した状態で書けるので結果的に書きやすくなると思います
SDK があれば SDK を使っても良いと思います
0 件のコメント:
コメントを投稿