YouTube Data API のクォータ増加申請が一発で通ったハナシ

## はじめに

以前、[ClipSearch](https://www.clipsearch.jp/) というサービスを開発した際の話を記事にしました。
ClipSearch はYouTube の動画 URL から関連動画（切り抜きやショート動画など）を見つけるサービスです。

https://qiita.com/yossyxp/items/4fa0adfa0740a5e630e3

その中で、YouTube Data API のクォータ増加申請について触れましたが、本記事ではその申請方法や注意点について詳しくお話ししていこうと思います。

## YouTube Data API のクォータ上限

記事内でも触れたように、YouTube Data API には1日あたりのリクエスト量に制限があります。基本的には1日10,000クォータのが割り当てられ、検索においては100クォータ、チャンネル情報などデータ取得には1クォータといった具合に、リクエストの種類ごとに消費するクォータが決まっています。（[YouTube Data API（v3） - 割り当て計算ツール](https://developers.google.com/youtube/v3/determine_quota_cost?hl=ja)）

そのため、検索系のサービスでは1日100回検索されただけでサービス自体がその日は使用できなくなるという問題が発生する可能性があります。そこで YouTube API ではクォータの増加申請が可能であり、Web サービスが問題ないかの審査に通ることでクォータの割り当てを増やしてもらうことができます。

## 前提条件

Google Cloud Platform(GCP) にて以下の作業が完了していることを前提としています。

- プロジェクトの作成
- YouTube Data API の有効化
- API キーの取得

## 実際の申請

https://support.google.com/youtube/contact/yt_api_form?hl=ja&sjid=12478215693028853309-NC

上記のフォームにて必要事項を記入していくことで申請が可能です。日本語対応もされているようですが、その後のメールのやり取りは英語で行なわれるため、最初から英語で記入すると良いかもしれません。

:::message
実際は英語で回答していますが、わかりやすくするために一部日本語で記載します。
:::

### このフォームにご記入いただく理由 *

- [x] 目的コンプライアンス監査を完了したいまたは追加の API 割り当てをリクエストしたい
- [ ] 定期監査の対象になった

### 氏名/連絡先など *

- 氏名：「自分の名前」
- 組織名：「individual」
  - 個人開発だったので「個人」としました。
- 組織のウェブサイト：「https://www.clipsearch.jp」
  - 自分のウェブサイトの URL を記載します。
- 組織の住所：「〇〇, ××, Saitama-shi, Saitama-ken, Japan」
- 組織の連絡先メールアドレス：「〇〇@gmail.com」

### YouTube に関連する、組織の業務を説明してください *

「個人で運営しているため、組織として YouTube に関連する業務はありません。」

個人利用であるという点を伝えています。

### Google 担当者のメールアドレス

「〇〇@gmail.com」

今後やり取りするときに使うメールアドレスです。

### コンテンツ所有者 ID（該当する場合）

[Google Cloud Platform](https://console.cloud.google.com) で、対象のプロジェクトの ID を入力して下さい。

![](https://storage.googleapis.com/zenn-user-upload/702a29d85692-20250216.png)

### 2019 年 6 月以降に監査を受けましたか *

- [ ] はい
- [x] いいえ

初回の場合はもちろん「いいえ」を選択します。監査を受けていない方がほとんどだと思いますが、受けた方は「はい」を選択しましょう。

### 前回の監査以降、クライアントによる YouTube API の使用状況になんらかの変化がありましたか *

- [ ] はい
- [x] いいえ

### API クライアントをすべて記入してください *

「ClipSearch」

審査対象のサービス名を記載します。

### 各 API クライアントで使用するプロジェクト番号をすべて記入してください *

[Google Cloud Platform](https://console.cloud.google.com) で、対象のプロジェクト番号を入力して下さい。

![](https://storage.googleapis.com/zenn-user-upload/5c0a8e6739fc-20250216.png)

### この API クライアントは一般公開されていますか、それとも非公開ですか。 *

- [x] 一般公開されている
- [ ] 社内専用

こちらはサービスによって異なると思います。

### 各 API クライアントを確認できる場所を記入してください *

「https://www.clipsearch.jp」

基本的にはサービスのリンクになります。
アプリとして提供している場合は Play ストアのリンク、Apple ストアのリンクも記載するのが良さそうです。

### API クライアントにアクセスするためにログインする必要がある場合は、デモアカウントと、API クライアントにアクセスする手順を指定してください

「空欄」

[ClipSearch](https://www.clipsearch.jp) は認証が必要ないサービスなので、特に記載はしませんでした。認証が必要なサービスはデモアカウントを作成した上で、ユーザ名・パスワードを共有する必要があります。

### API クライアントで YouTube データを商品化していますか *

- [ ] はい
- [x] いいえ

サービスをサブスクなどで提供している場合は「はい」を選択します。

### API クライアントのユースケースに最も近いものを以下から選択してください *

- [ ] YouTube アナリティクス
- [ ] ソーシャル メディア分析
- [ ] YouTube 動画のアップロード
- [x] 動画ストリーミングサイト/アプリ
- [ ] ライブ配信ツール
- [ ] 調査
- [ ] クリエイター向けツール
- [ ] その他

### この API クライアントで使用する YouTube API サービスをすべて選択してください *

- [x] Data API
- [ ] Analytics API
- [ ] Reporting API
- [ ] Content ID API
- [ ] 埋め込み
- [ ] Live Streaming API

### API クライアントの主なユーザー層を選択してください *

- [x] クリエイター
- [x] 閲覧者
- [ ] 広告主
- [ ] 企業
- [ ] 社内専用

### API クライアントを使用しているユーザー数は、およそどのくらいですか *

「例：10人」

おおよそのユーザー数を記載します。

### ユーザーが API クライアントをどのように使用しているか説明してください *

1. URL にアクセスします。
2. 検索フォームに YouTube の URL を入力して検索をします。
3. 関連動画が一覧で表示されます。

実際にユーザーが操作する手順を記載します。

### API クライアントは複数のプロジェクトを使用して YouTube API にアクセスしていますか *

- [ ] はい
- [x] いいえ

単一のプロジェクトのため、「いいえ」を選択します。複数の方は「はい」を選択します。

### この API クライアントは、YouTube データから導き出した指標を作成、アクセス、または使用していますか *

- [ ] はい
- [x] いいえ

YouTube の動画情報を取得して表示しているだけなので、「いいえ」としています。

### この API クライアントは、複数のプラットフォーム（Facebook や Twitter など）から取得したデータを表示したり、複数のプラットフォームに機能やサービスを提供したりしていますか *

- [ ] はい
- [x] いいえ

YouTube のみであるため、「いいえ」としています。複数の方は「はい」を選択します。

### YouTube API データを使用して、なんらかのレポートを作成、提供していますか *

- [ ] はい
- [x] いいえ

YouTube の動画情報を取得して表示しているだけなので、「いいえ」としています。

### YouTube API データをどのくらいの期間保存していますか *

- [ ] 12 か月を超える
- [ ] 3～12 か月
- [ ] 30～90 日
- [ ] 1～4 週間
- [ ] 1～7 日
- [x] 24 時間未満

特に保存していなかったので、「24時間未満」としました。こちらはサービスによって変わってくると思っていて、キャッシュなどを設定している方はその期間を選択します。

### どのくらいの頻度で YouTube API データを更新していますか *

- [ ] 24 時間
- [ ] 1 週間
- [ ] 1 か月
- [ ] 1 年
- [x] 更新していない

こちらは質問の意味をあまり理解できていないですが、特に更新していないので、「更新していない」としています。定期的に YouTube API のデータを更新している場合が該当するのでしょうか。

### この API クライアントは、ユーザーが Google 認証情報を使用して認証できるようにしていますか *

- [ ] はい
- [x] いいえ

### 各 API クライアントによる YouTube API サービスの実装、アクセス、統合、使用に関連するドキュメント（設計ドキュメントなど）を送信してください。API クライアントが公開されていない場合は、各 YouTube API サービス機能の詳細なスクリーンショットと、この API クライアントで表示される、またはこれに統合される YouTube データ、コンテンツ、情報をアップロードしてください。 *

こちらは主にサービスにおける YouTube API 関連の仕様や設計についてまとめた文書をアップロードしました。

### 割り当て増加のリクエストの対象となる API クライアントを記入してください *

「ClipSearch」

サービス名を記載します。

### 割り当て増加のリクエストの対象となる API プロジェクト番号を記入してください *

[Google Cloud Platform](https://console.cloud.google.com) で、対象のプロジェクト番号を入力して下さい。

![](https://storage.googleapis.com/zenn-user-upload/5c0a8e6739fc-20250216.png)

### 割り当て増加のリクエストの対象となる YouTube API サービスを指定してください *

- [x] Data API

### リクエストする「追加割り当て」量を記入してください *

「90,000」

今回、一旦 100,000 クォータをリクエストしたかったので、
追加割り当て量（90000）= 必要な総割り当て量（100,000）- 現在の割り当て量（10,000）という式から「90,000」を記載します。

:::message
総合計ではなく、追加する分の割り当て量を記載する必要があります。
:::

### 追加割り当てをリクエストする理由を説明してください *

「現状、10,000クォータでは1日に100回の検索を行うとサービスが利用できなくなってしまいます。現時点では大きな問題にはなっていませんが、今後サービスを拡大しユーザー数が増加した際には、1日100回の検索制限では対応できなくなると予想しています。そこで、将来的なサービスの拡大を見据え、追加のクォータ割り当てをリクエストします。半年以内にユーザー数を50人に増やすことを目標としており、その際には1人あたり1日20回の検索ができる環境を確保したいと考えています。」

以下を詳細に記入することを求められています。が、リリースしたばかりのサービスだったのでおおよその目標とそこから算出した割り当て量を記載しているといった感じです。
- 予想される増加量とタイムライン
- 追加割り当て量を割り出した計算式
- 日常の使用パターン（呼び出しの総数とピーク QPS）
- 予想される呼び出し数

### 現在 YouTube API サービスをどのように使用しているか詳しく説明してください *

1. URL にアクセスします。
2. 検索フォームに YouTube の URL を入力して検索をします。
3. このとき、YouTube Data API の Search: list を呼びだします。
4. レスポンスとして返ってきた動画が一覧で表示されます。

「ユーザーが API クライアントをどのように使用しているか説明してください」と似たような説明を記載しています。

### 割り当てを増やさないと API クライアントで使用できなくなるのはどのような機能ですか *

「YouTube の動画 URL から関連動画を検索する機能」

今回割り当てが必要になる API を使用している機能を記載します。

### 割り当ての不足を補うためにどのような回避策を講じますか（例: 機能セットを減らす、推定する、サンプリングを削減する） *

- 検索結果をキャッシュしてリクエスト量を減らします。
- 1回の検索で取得するデータ量を多くします。

## 申請後...

**一発で申請が通りました！**

2025年2月3日に申請し、その後、2025年2月11日に審査が完了した旨のメールが届き、無事リクエスト通りのクォータが割り当てられました。審査期間としては1週間ほどという結果でした。
何かしら FB が返ってくるだろうと思っていたのですが、一発で審査に通ったのは予想外でした。

また、追加でクォータ割り当て量を増やしたいとなった場合は12ヶ月以内に審査が通った人専用のフォームから再申請が可能なようです。

https://support.google.com/youtube/contact/yt_api_audited_developer_requests_form?hl=en&sjid=8727734795330730936-NC

## 申請以外のハナシ

申請以外にも注意すべき点があります。それは「利用規約とプライバシーポリシー」にサービスが準拠していることです。YouTube API の利用には YouTube の「[利用規約](https://www.youtube.com/t/terms)」や Google 社の「[プライバシーポリシー](http://www.google.com/policies/privacy)」に従う必要があります。
これらの内容を読み解くのは非常に時間がかかりましたが、全てに目を通しました。その中で私のサービス（[ClipSearch](https://www.clipsearch.jp/)）で適用したのは以下の2点です。

- サービスに「利用規約」と「プライバシーポリシー」を設置する。
- YouTube の動画を表示する際の UI を規約通りにする。

### サービスに「利用規約」と「プライバシーポリシー」を設置する

先ほども挙げた YouTube の「[利用規約](https://www.youtube.com/t/terms)」や Google 社の「[プライバシーポリシー](http://www.google.com/policies/privacy)」に関して、それらの規約に準拠している旨をサービス内に記載する必要があります。

そこで、サービスにおける「[利用規約](https://www.clipsearch.jp/terms)」と「[プライバシーポリシー](https://www.clipsearch.jp/privacy)」のページを用意しました。

|利用規約|プライバシーポリシー|
|:--:|:--:|
|![](https://storage.googleapis.com/zenn-user-upload/f6dcfd5fc326-20250217.png)|![](https://storage.googleapis.com/zenn-user-upload/b8c2f1c2a27a-20250217.png)|

### YouTube の動画を表示する際の UI を規約通りにする

https://developers.google.com/youtube/terms/branding-guidelines?hl=ja

上記のガイドラインの中で、ロゴやブランド表示に関する内容が細かく明示されています。どうやらユーザーに対して YouTube がコンテンツの提供元であることを明示的にする必要があり、動画にロゴやブランドを表示させることが求められています。

ということで、動画コンテンツにしっかりと YouTube の動画であることがわかるようにしています。特別なことをしているわけではなく、iframe に YouTube の動画 URL を埋め込んであげればいいわけで、これ以上特に UI をいじらないようにしたという感じです。

```
<iframe
  src={`https://www.youtube.com/embed/${videoId}`}
  allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
  allowFullScreen
/>
```

![](https://storage.googleapis.com/zenn-user-upload/fc3ba1f9cd69-20250217.png)

## さいごに

ここまで読んでいただき、ありがとうございました。
普段個人開発ではあまり注力しない「利用規約」や「プライバシーポリシー」に関して、時間をかけて取り組めたのは良い経験となりました。
本記事が今後、YouTube Data API のクォータ増加申請を行なう方の手助けになれば良いなと思います。