一身上の都合

プログラミングとかの話

YouTube Data API で登録済みチャンネルの中からライブ配信中のものだけ取得しようとしたがQuota の上限に引っかかった

YouTube 配信開始の通知はGoogle アカウントへのメールか、スマホへのポップアップ通知しかないので、自分でAPI 叩いてDiscord とかに通知飛ばせるようにするかと思いちょっとしたツールを作りました。

が、一つ問題がありGCPYouTube Data API は一日10,000 Queries というQuota(割当)上限が決められており、さらに使用するAPI によってQueries の使用量が定められています。
Quota については公式のドキュメントYouTube Data API (v3) - Quota Calculator  |  Google Developers をご確認ください。

例を挙げると、
チャンネル登録に関するAPI であるsubscriptions.list を使用する場合はcost は "1" ですが、
動画を検索するsearch.list を使用する場合はcost は "50" も必要です。

今回やりたかったことは流れとして、

  1. 自分の登録チャンネルのID を取得する
  2. 各チャンネルの配信中の配信があればそれを返す
  3. それをDiscord とかで5分おき(配信開始は大抵キリの良い時間なので)に通知する

って感じなんですが、YouTube Data API では配信中かどうかの情報は videos または search リソースでしか取得できません。
videos に関してはChannel ID からは取得できず、search リソースを使用するしかないのですが、
登録チャンネルが50だった場合、search のコスト 50 × 50 で2,500 Queries を消費してしまうので課金する他方法がないようです。
Quota 上限の開放に関しては(個人だと難しいみたい)https://stackoverflow.com/questions/61281991/applying-for-additional-quota-for-youtube-api-as-an-individual-without-business/62686472#62686472なので、白旗です。

一応作ったものはこちら

github.com