YouTube Data API は、動画・チャンネル・プレイリスト・コメントといった YouTube 上の情報を検索・取得するための公式 API だ。自サイトに特定チャンネルの最新動画を並べる、テーマごとに動画をキュレーションする、といった「YouTube の情報を外に持ち出す」用途で使う。
quota という制約が設計を決める
このAPIを使ううえで最初に理解すべきは日次 quota だ。1 日あたり 10,000 ユニットが付与され、操作ごとにコストが異なる。とりわけ search エンドポイントは 1 回で 100 ユニットを消費するため、検索を多用すると 1 日 100 回程度で枯渇する。一方、ID 指定での動画情報取得は 1 ユニットと安い。
現実的な作り方
そのため実装は「検索は最小限、取得は ID 指定で」が定石になる。チャンネルの新着を追うなら search を毎回叩くのではなく、playlistItems(アップロード用プレイリスト)を辿る方が quota を節約できる。取得した結果はキャッシュし、更新は数時間〜1 日おきにバッチで回す設計が向く。
逆に、大量の動画データを毎日リアルタイムに近い頻度で集めたい分析用途には quota が足かせになる。その規模なら quota 増枠申請を検討するか、用途自体を見直す必要がある。
表示と利用規約の縛り
YouTube Data API で取得した情報を自サイトに出す場合、再生は YouTube の埋め込みプレーヤー経由にする、サムネイルやメタデータの扱いを規約に沿わせる、といった条件が API サービス利用規約で定められている。動画ファイルそのものを取得して自前で配信することはできず、あくまで「YouTube 上のコンテンツへ誘導する」前提で設計する必要がある。
コメント・統計の鮮度
再生回数やコメントは時間とともに変わるため、取得したスナップショットをそのまま長期間表示すると古い数字を見せ続けることになる。統計値を見せるなら更新頻度を決め、quota の消費とのバランスでバッチ間隔を調整するのが現実的だ。
割り当てを使い切ったあとの挙動を設計する
quota は一日単位でリセットされるため、使い切るとその日は復旧しない。検索を多用する実装だと、想定より早く上限に到達し、サイト上の動画一覧が丸ごと表示されなくなる。取得結果を永続化しておき、API が使えない間はキャッシュを表示に回す構成にしておけば、割り当て切れがそのまま画面の破綻にはならない。
search 系の呼び出しは消費が突出して大きく、ID を指定した取得は桁違いに安く済みます。「特定チャンネルの最新動画を並べる」だけなら、チャンネルのアップロード用プレイリストを辿る方法で検索を回避できます。設計を少し変えるだけで、消費量が一桁変わります。
埋め込みと自前表示の線引き
取得したメタデータを使って自前のプレイヤーやリストを作る場合、利用規約上の制約が絡む。動画の再生は公式の埋め込みプレイヤーを使うことが前提で、サムネイルやタイトルの扱いにも決まりがある。「API で取れるから自由に使える」ではないため、表示まわりの仕様を固める前に規約を確認しておくほうが安全だ。