トップ画像
YouTube Live Scheduler Part3

執筆者: ぷらなりあ

最終更新: 2021/03/07

こんにちは,「ぷらなりあ」です.
前回の記事に引き続き,YouTubeのライブ配信をまとめて表示してくれるサイトについて,実装概要の③と課題点について書いていきます.
 

実装概要

  1. 各You Tubeチャンネルに配信コンテンツがあるか確認
  2. 配信コンテンツがあればその詳細情報を取得してデータベースに登録
  3. データベースから情報を読み込んで画面に表示

 

使ったもの

  • PHP 7.4.13
  • MySQL5.7
  • YouTube Data API v3
  • Bootstrap v4.0.0

 

仕組み(続き)

③     データベースから情報を読み込んで画面に表示
YoutubeではビデオIDが分かれば配信URLやサムネイル画像のURLも分かる為,配信情報を表示させる.
             
以下のように,開始予定時間(配信開始後,実際に開始した時間に更新),チャンネルアイコン,配信者名,サムネイル,配信タイトルが表示され,ボックス内をクリックすれば別タブで配信が開く.なお,現在配信中の場合は,赤い枠で囲まれる.

図 1 配信前後

図 2 配信中


また,全体としての表示は配信日時で分割され,配信開始時間が1時間区切りで改行される.

図 3 全体の表示

以上のようにして,事前に配信者名,チャンネルID,チャンネルアイコン画像のURLを登録しておけば,自動的にそのチャンネルの配信情報を取得・表示してくれる.
なお,クォータの削減のため情報の更新間隔は最低でも15分としてある.
また,サーバ側の都合により,常にサーバ上で稼働し,一定時間ごとにデータベースの更新を行うことができなかったので,更新のタイミングを前回の更新から15分以上経過した状態で,サイトへのアクセスがあった際とした.
さらに,データベースの容量を考慮し,配信情報は1日前のものまでアーカイブするようにした.(デモページでは参考のため,1か月程度アーカイブされる予定)
             

課題点

このサイトが取得するのはライブ配信のみなので,動画投稿は表示されない.
仕様上,情報の更新に最大で15分程度のタイムラグが生れる.
また,サーバ側で勝手にデータベースを更新してくれず,終了した配信は配信者1人あたり1度に最大で10個しか検索しないので,サイトに長期間アクセスしないとその間の配信情報が配信者1人あたり10個以上残らない. ただし,通常過去の配信情報は1日前までしか表示しないので,あまり影響はない(配信者が1日10回行動とか10回以上枠ガチャをしなければ)
さらに,データベース更新時のアクセスが若干重く,20~30秒程度かかる.
APIキーの制限が結構めんどくさいので,キーが複数必要となる.(デモページも,複数のキーを切り替えながら使用している)
 

その他

Bootstrapめっちゃ便利・YouTube Data APIの公式リファレンス意味わからん(以上)
 
完成したサイトのデモページ
http://harekiru.starfree.jp/youtubelivescheduler.php
 
参考
YouTube Data API リファレンス
https://developers.google.cn/youtube/v3/docs

ここまで,長々とした文章になってしまいましたが,お付き合いくださった方,ありがとうございました.今後は上で挙げたような課題の修正や,現在の実装方法では不特定多数が閲覧できるメリットがあるものの,個々人が便利ツールとして使うには導入のハードルが高過ぎるので,サイトのアプリ化などをやっていこうかなと考えています.最終的には,APIとお気に入りのチャンネルの情報を登録すれば動くようなPCアプリにしたいと思っています.
その他,詳細について興味がある新入生の方はOUCRCで「ぷらなりあ」に聞いてください.
では,ここまでありがとうございました!

取得に失敗しました

2019年度 入部

GitHub