執筆者: ぷらなりあ
最終更新: 2021/03/07
こんにちは,「ぷらなりあ」です.
前回の記事に引き続き,YouTubeのライブ配信をまとめて表示してくれるサイトについて書いていきます.今回は前回の最後にご紹介した実装概要をもう少し深堀します.
基本的な流れは上記の①~③の様に行います.配信予定があるかどうかや,配信の開始時間やURL,配信タイトルなどYouTube上の情報を取得するにはYouTube Data API v3というGoogleの出しているAPIを使用する.また,このAPIの仕様上によりチャンネルごとの配信予定の有無と配信に関する詳細情報の一部は同時に取って来れないので,①と②のように2回に分けて行った.
① 各You Tubeチャンネルに配信コンテンツがあるか確認
YouTube Data API v3のsearchリソースを使う.
You TubeのチャンネルIDを指定して配信予定のコンテンツ,現在配信中のコンテンツ,過去に配信済みのコンテンツ,それぞれのビデオIDを取得する.また,YouTube Data API v3には,1つのAPIキーごとに1日当たりの使用制限があり,リクエスト内容によって値の異なるクォータの数値で管理されている.APIキーの持つクォータがなくなれば日付が変わるまで使えなくなるので,リクエスト内容はビデオIDとその他最低限だけにし,取得する過去の配信コンテンツの数も必要最低限になるように工夫してある.これを実行すると以下のようになる.なお,【配信状況】には配信予定なら“upcoming”,配信中なら“live”,配信済みなら” completed”が入る.(その他詳しくは参考の公式リファレンスを参照)
https://www.googleapis.com/youtube/v3/search?part=id&channelId=【チャンネルID】&key=【APIキー】&eventType=【配信状況】&type=video
これを実行すれば,要求した情報がJSONで帰ってくる.
② 配信コンテンツがあればその詳細情報を取得してデータベースに登録
①でビデオIDが得られれば,YouTube Data API v3のvideoリソースを使い,配信の詳細情報を得る.
ここでも,クォータの削減のためリクエスト内容は最低限となるように,配信タイトルと配信の開始予定時間,実際の開始時間,配信の終了時間だけを要求した.
https://www.googleapis.com/youtube/v3/videos?part=snippet,liveStreamingDetails&fields=items(snippet(title),liveStreamingDetails)&id=【APIキー】&key=&type=video
このようにして,①と②で得られた情報をデータベースに登録しておく.
You TubeではビデオIDが分かれば配信URLやサムネイル画像のURLも分かる為,ここまでの情報でサイトに必要な情報は一通り集められました.後は③のサイト画面の表示部分だけですが,少し記事が長くなるので今回はここまでにしたいと思います.
次回の記事では,実装の③サイトの表示に関する部分とサイトの課題点などを紹介したいと思います.
http://harekiru.starfree.jp/youtubelivescheduler.php
YouTube Data API リファレンス
https://developers.google.cn/youtube/v3/docs
この人が書いた記事