YouTube 連携セットアップ手順 (ViralForge)

本書は ViralForge から YouTube (Short / Long) へ動画を自動投稿するためのクライアント様側作業手順です。Google Cloud Console での OAuth 2.0 クライアント作成が初めての方向け。


1. 仕組みの概要

ViralForge は YouTube Data API v3videos.insert で動画をアップロードします。認証は Google OAuth 2.0。初回取得の refresh_token を Fernet 暗号化で DB 保存し、以降は自動でアクセストークン再発行。


2. 事前準備

OAuth consent screen の審査について

基本方針: 少数アカウント運用 (自社ブランドの 1〜数チャンネル) なら Testing モードのまま・未審査で利用可 です。OAuth 認可時に警告画面が 1 枚出ますが、運用担当者が許可することで通過できます。手順は §3-5 参照。

どちらを選ぶか:


3. Google Cloud Console での手順

3-1. プロジェクト作成

  1. Google Cloud Console にログイン
  2. プロジェクトセレクタから「新しいプロジェクト」(例: viralforge-youtube)

3-2. YouTube Data API v3 を有効化

APIs & Services → LibraryYouTube Data API v3 を検索して Enable

3-3. OAuth consent screen の設定

  1. APIs & Services → OAuth consent screen
  2. User Type: Workspace 内だけなら Internal、それ以外は External
  3. アプリ名・サポートメール・デベロッパー連絡先を入力
  4. App domain 欄に以下を入力 (External のみ、任意項目だが未審査運用でも入れておく):
  5. Scopes に https://www.googleapis.com/auth/youtube.upload を追加
  6. Test users に運用アカウント (実際に投稿する YouTube チャンネルの Google アカウント) のメールを追加 — Testing モードで運用する場合はここが必須
  7. 大規模運用時のみ Publish app で審査申請 (少数運用ならこのまま Testing で OK)

3-4. OAuth Client ID を作成

  1. APIs & Services → Credentials → Create Credentials → OAuth client ID
  2. Application type = Web application を選択し名前を入力
  3. Authorized redirect URIs に ViralForge のコールバック URL を追加:
  4. 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 の標準動作で、運用担当者が自身の信頼するアプリであることを確認して通過できます

手順:

  1. ViralForge の組織設定から「+ YouTubeアカウントを追加」を押下 → Google のログイン画面 → 運用アカウントでログイン
  2. Google によって確認されていません」(英語: "Google hasn't verified this app") という警告画面が表示される
  3. 画面左下の 「詳細」 (英語: "Advanced") を押下
  4. 展開されたリンク 「{アプリ名} (安全ではないページ) に移動」 (英語: "Go to {app name} (unsafe)") を押下
  5. 通常のスコープ許可画面に進むので、youtube.upload を許可
  6. 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 接続する構成です。

  1. Admin が 全体設定 → SNSアプリ認証 → YouTube に §3-4 でダウンロードした OAuth クライアント JSON をアップロード (済の場合はスキップ)
  2. 組織ユーザーは 組織設定 を開き、YouTube 行の 「+ YouTubeアカウントを追加」 ボタンを押下
  3. アカウント名を入力すると Google の OAuth 画面に遷移。運用アカウントでログインして Scope を許可
  4. ViralForge に戻ると refresh_token が保存され、組織内で利用可能になります
  5. プラン編集画面の YouTube タブを有効化し、動画タイプ (Short / Long) とスケジュールを設定

5. 投稿制限 (2026 年時点の目安)

値は随時変わるため最新は YouTube Data API - Quota を確認してください。


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 のアクセス権を削除してください。