YouTube 連携セットアップ手順 (ViralForge)
本書は ViralForge から YouTube (Short / Long) へ動画を自動投稿するためのクライアント様側作業手順です。Google Cloud Console での OAuth 2.0 クライアント作成が初めての方向け。
1. 仕組みの概要
ViralForge は YouTube Data API v3 の videos.insert で動画をアップロードします。認証は Google OAuth 2.0。初回取得の refresh_token を Fernet 暗号化で DB 保存し、以降は自動でアクセストークン再発行。
- Short — 9:16 縦、60 秒以内、タイトルに
#shorts を自動付与
- Long — 16:9 横 (数分〜十数分)
2. 事前準備
- Google アカウント と、そのアカウントが管理する YouTube チャンネル
- Google Cloud プロジェクト (新規作成可、無料枠で完結)
- チャンネル側の電話番号認証 — YouTube Studio → 設定 → チャンネル → 機能の利用資格 で電話番号確認を済ませておく (未認証だと
channelUploadsDisabled が返ります)
OAuth consent screen の審査について
基本方針: 少数アカウント運用 (自社ブランドの 1〜数チャンネル) なら Testing モードのまま・未審査で利用可 です。OAuth 認可時に警告画面が 1 枚出ますが、運用担当者が許可することで通過できます。手順は §3-5 参照。
- 審査前 (Testing): Test user 最大 100 ユーザーのみ。OAuth 認可時に「このアプリは確認されていません」警告あり。refresh_token は 7 日で期限切れになるケースあり
- 審査通過後 (In production): ユーザー制限なし、refresh_token 永続、警告なし
どちらを選ぶか:
- 少数運用 (推奨初期構成): Testing のまま進める。警告画面は §3-5 の手順で通過。審査不要
- 大規模運用 / エンドユーザーに OAuth させる SaaS 展開: Publish app → 公開審査 (OAuth Verification) を申請。YouTube Data API は sensitive scope を含むため 1〜6 週間かかるので早めに。Workspace 内のみの利用なら Internal で審査不要
3. Google Cloud Console での手順
3-1. プロジェクト作成
- Google Cloud Console にログイン
- プロジェクトセレクタから「新しいプロジェクト」(例:
viralforge-youtube)
3-2. YouTube Data API v3 を有効化
APIs & Services → Library で YouTube Data API v3 を検索して Enable。
3-3. OAuth consent screen の設定
- APIs & Services → OAuth consent screen
- User Type: Workspace 内だけなら Internal、それ以外は External
- アプリ名・サポートメール・デベロッパー連絡先を入力
- App domain 欄に以下を入力 (External のみ、任意項目だが未審査運用でも入れておく):
- Application home page:
https://viral-forge.net/
- Privacy Policy URL:
https://viral-forge.net/privacy.html
- Terms of Service URL:
https://viral-forge.net/terms.html
- Scopes に
https://www.googleapis.com/auth/youtube.upload を追加
- Test users に運用アカウント (実際に投稿する YouTube チャンネルの Google アカウント) のメールを追加 — Testing モードで運用する場合はここが必須
- 大規模運用時のみ Publish app で審査申請 (少数運用ならこのまま Testing で OK)
3-4. OAuth Client ID を作成
- APIs & Services → Credentials → Create Credentials → OAuth client ID
- Application type = Web application を選択し名前を入力
- Authorized redirect URIs に ViralForge のコールバック URL を追加:
- 本番:
https://viral-forge.net/admin/api/oauth/youtube/callback
- 独自ドメイン運用の場合は ViralForge 運用担当から案内された URL をそのまま登録
- Create → クライアント JSON をダウンロード (Client ID と Client Secret が記載されています)
redirect URI は完全一致が厳密に要求されます。 末尾スラッシュ / http vs https / サブドメイン違い 1 文字でも redirect_uri_mismatch になります。
3-5. OAuth 認可時の「このアプリは確認されていません」警告を通す (Testing モード運用時)
OAuth consent screen を Testing モードのまま運用する場合、ViralForge で「+ YouTubeアカウントを追加」を押して Google にリダイレクトされた際に以下の警告画面が表示されます。これは未審査アプリに対する Google の標準動作で、運用担当者が自身の信頼するアプリであることを確認して通過できます。
手順:
- ViralForge の組織設定から「+ YouTubeアカウントを追加」を押下 → Google のログイン画面 → 運用アカウントでログイン
- 「Google によって確認されていません」(英語: "Google hasn't verified this app") という警告画面が表示される
- 画面左下の 「詳細」 (英語: "Advanced") を押下
- 展開されたリンク 「{アプリ名} (安全ではないページ) に移動」 (英語: "Go to {app name} (unsafe)") を押下
- 通常のスコープ許可画面に進むので、
youtube.upload を許可
- ViralForge に戻って refresh_token が保存されれば完了
注意: この手順は「運用担当者自身が自社アプリに対して OAuth する」場合のみ安全に利用してください。第三者エンドユーザーに同じ手順を踏ませる運用は UX 上推奨しません — その場合は §3-3 の Publish app で審査申請を行ってください。
Testing モードでは Test users に登録したアカウント (最大 100 人) のみ OAuth 可能です。refresh_token が 7 日で失効することがあるため、その場合は組織設定から再認証してください。
4. ViralForge 管理画面での設定
ViralForge の YouTube 連携は、全体設定 (Admin) に登録した YouTube App を organization 経由で OAuth 接続する構成です。
- Admin が 全体設定 → SNSアプリ認証 → YouTube に §3-4 でダウンロードした OAuth クライアント JSON をアップロード (済の場合はスキップ)
- 組織ユーザーは 組織設定 を開き、YouTube 行の 「+ YouTubeアカウントを追加」 ボタンを押下
- アカウント名を入力すると Google の OAuth 画面に遷移。運用アカウントでログインして Scope を許可
- ViralForge に戻ると refresh_token が保存され、組織内で利用可能になります
- プラン編集画面の YouTube タブを有効化し、動画タイプ (Short / Long) とスケジュールを設定
5. 投稿制限 (2026 年時点の目安)
値は随時変わるため最新は YouTube Data API - Quota を確認してください。
- API quota: 1 プロジェクト 1 日 10,000 units (デフォルト)
- videos.insert コスト: 約 1,600 units / 回 = 1 日およそ 6 本が実質上限。Quota Extension 申請で増枠可
- Short は 60 秒以内、9:16、
#shorts 必須 / Long は最大 12 時間、16:9 推奨
- 未認証チャンネルは 15 分超の動画を投稿不可
6. よくあるエラー
| エラー |
原因 |
対処 |
403 quotaExceeded |
日次 quota 超過 |
翌日まで待機 or 増枠申請 |
401 invalid_grant |
refresh_token 失効 |
組織設定から再認証 (審査前は 7 日毎) |
400 channelUploadsDisabled |
チャンネル側 upload 無効 |
YouTube Studio で電話番号認証 |
redirect_uri_mismatch |
redirect URI 不一致 |
§3-4 の URL を 1 文字違わず再登録 |
403 accessNotConfigured |
API 未有効化 |
§3-2 を再実施 |
7. セキュリティ
Client Secret / refresh_token は Fernet 暗号化で DB 保存、multi-tenant 分離されています。Google 側でアクセス取り消しを行いたい場合は Google アカウントのセキュリティ設定 から ViralForge のアクセス権を削除してください。