はじめに
これは推し活する為に頑張った者の壮大な物語である。(結果失敗に終わる
前提として、何か適当にAPI使ってFirebaseとか使って簡易アプリを作ろうかなという軽い気持ちの事でした。
まず個人で使えそうなAPIを調べる事に。先人様が調べてるものをざらっと見て自分の趣味と合致したYouTupeAPIってEんじゃないの?と思ったのが発端。
【先人様の参考情報】(他にもおすすめがあればコメントください
https://qiita.com/mikan3rd/items/ba4737023f08bb2ca161
結論から述べると辛いのでもうちょいアイデアか天才のひらめきが必要
やりたい事
日頃常にYouTubeを見てるハードユーザーなので登録チャンネルの量が非常に膨大。
左側のサイドバーにずらっと登録チャンネルが並び配信マークがついてるものの何をやっているかはさっぱりわからないストレス。ホロライブとかにじさんじとかなんでもいい推しがみんないるはずだ。そう、自分は個人の人しかあまり見ないけどいっぱいいる。出来れば 登録チャンネルで配信されているものをずらっと見回したい 要件はただこれだけである。
要件は決まったのでさっそくどうやるか設計を考える。
外部APIを叩くだけだしサーバーレスでいいだろう。するとFirebaseHostingで余裕そうだなぁ。
フロントはとりあえず動かしてみる為にvue-cliでさくっとすることにする。
次にどの情報を取得するかを考える。
YouTubeAPIには4種のAPIが存在する
(あ、ちなみにGoogleさんのAPIについてはこちら)
- YouTube Data API v3 v3(https://developers.google.com/youtube/v3/docs)
- YouTube Analytics API(https://developers.google.com/youtube/analytics/reference/)
- YouTube Live API v3(https://developers.google.com/youtube/v3/live/docs/)
- YouTube Reporting API(https://developers.google.com/youtube/reporting/v1/reference/rest/)
ざらっと見てAnalyticsとReportingは配信者向けっぽいからDataかLiveをいい感じに使えば行けそうな気がする。
詳しくはリンク先にいろいろ書いてあるので割愛だけどここに来てふと気づく。
「これ、クォータ足りないんじゃね?」
クォータとはYouTubeAPIを使用するために必要な命の源である。
要約すると1日10,000上限。一番使用頻度高そうなsearch:listが1reqest100ということはつまり1日100回しか取得できないクソアプリが完成する事になる。
Live配信してるか判定するにはsearchもしくはvideoで行わないといけないがsearchは100かかるvideoは軽いがvideoidがなければ ほぼ無差別に配信してる動画を取得してしまう始末 これはいけない
しかもうまく行きそうならWebに公開しようと思った俺達一行はどうにかならないか別案を考える。まず個人じゃなくてgoogleOAuth使ってユーザーの力を借りる方法にしてみよう、そしたら10000×ユーザー数で割と現実的になりそう❕いや普通に考えて1日一人100回でも十分クソアプリだろ・・・と思いこの方法は辛い。じゃあYouTubeトップからスクレイピングして配信中のチャンネルIDを拾ってくれば!と思うがYouTubeはスクレイピング禁止(日頃から重かったりするので労ろう)なので無理ぽ。仕方ないのでじゃあクォーターの上限突破を申請するしかないか←今ここ
なんとか回避策を日々検討中なのでナイスなアイデアをお待ちしてます。
(プロトタイプで登録チャンネルの一覧は取得するまではやっていたのだった・・・)
追記
ほぼやりたい事をやっているページを見つけてしまって情弱を晒しました😇
https://www.youtube.com/feed/subscriptions