迷走テクノロギア

妄言に限りなく近い何か

久しぶりにPHP書いた話【YoutubeDataAPIv3】

github.com

PHPもう書くことないだろと思っていたが、

さくらのレンタルサーバーで動かしたいバッチ処理があったので(仕方なく)PHP書いていく

やりたかったこと

複数のYoutubeチャンネルの最新の配信またはアーカイブ(または動画)を取得して表示。

YoutubeDataAPIだけでできるんでは?

私もそう思ってました...

しかし、チャンネルIDを複数指定して動画のリストを取得することはできない...

チャンネル1つに付き1回API叩いてると、クォータがチャンネル1個につき100消費するので現実的じゃないしネェ

※(クォータ=1日1万上限のYoutubeDataAPIの制限)

すげぇ回避の仕方してる記事発見

qiita.com

手法としては

  1. YoutubeチャンネルのRSSフィード(最新の動画5件くらい取れるやつ)を使って、各チャンネル最新の動画のIDを取得
  2. YoutubeDataAPIの動画検索は動画IDを複数指定できるので全部突っ込む。
  3. 帰ってきた情報を整理(配信中かどうか~とか)

これでいけそう!

調整した箇所

動画を1件でなくRSSフィードから取れる全ての動画に

最新の動画1件だけだと、配信予約だったりするので正しい配信状態が取れない為

配信中>アーカイブ(または動画)>配信予約の優先順位に

RSSフィードから取れる情報のうち、一番優先順位が高いものを保存するようにした。

配信中かどうかを判別するのが一番優先だったので配信中を一番高く設定

最後はJSON出力

さくらのレンタルサーバーはCRONが使えるので、定時実行してJSONを更新。

情報がほしいアプリからJSONにアクセスといった感じで動きました。

すぐいけるやろとか思って始めたら半日くらいかかってしまった。

(ゲーム作んなきゃ)