サービス アカウントに OAuth 2.0 を使用する

注: YouTube Content ID API は、YouTube コンテンツ パートナーによる使用を目的とした API であり、すべてのデベロッパーまたはすべての YouTube ユーザーがアクセスすることはできません。Google API Console に YouTube Content ID API がサービスとして表示されない場合は、YouTube ヘルプセンターで YouTube パートナー プログラムの詳細をご覧ください。

背景

サービス アカウントは、ユーザーの操作なしで API 呼び出しを認可するために使用できる Google アカウントです。他の OAuth 2.0 フローとは異なり、サービス アカウント向け OAuth 2.0 フローを使用したアクセスの認証と認可はウェブブラウザでは行われません。代わりに、サービス アカウント用の OAuth 2.0 は、暗号署名に依存してアクセスを承認します。コードが基となる暗号鍵にアクセスできる限り、更新トークンやアクセス トークンを気にすることなく、引き続き API 呼び出しを行うことができます。これは、人手を介さずにサーバー上で動作する自動アプリケーションに最適です。

サービス アカウント向け OAuth 2.0 のフローを使用して、YouTube Content ID API リクエストを承認できるようになりました。このフローを使用して、委任パラメータをサポートするメソッドへの YouTube Data API と YouTube Analytics API の呼び出しを承認することもできます。いずれの場合も、このフローを使用するアプリケーションは、YouTube チャンネル所有者ではなく、YouTube コンテンツ パートナー(YouTube CMS アカウントを使用)として API リクエストを承認します。

サービス アカウントを設定する

次のスクリーンショットは、API プロジェクトに関連付けられたサービス アカウントを作成するプロセスを示しています。ここで、適切な API(YouTube Data API v3、YouTube Analytics API、YouTube Content ID API など)がすでに有効になっていることを確認してください。

  1. https://cloud.google.com/console にアクセスし、既存の API プロジェクトを選択します(または新しいプロジェクトを作成します)。
  2. 左側のサイドバーで [API と認証] を選択します。
  3. プロジェクトで YouTube Content ID API が有効になっていることを確認します。
  4. 左側のサイドバーで [認証情報] を選択します。
  5. [新しいクライアント ID を作成] ボタンをクリックします。
  6. 表示されたオプションから [サービス アカウント] を選択し、[クライアント ID を作成] をクリックします。サービス アカウントの秘密鍵がマシンにダウンロードされます。これは鍵の唯一のコピーであるため、アプリケーションが読み取れる安全な場所に鍵を保存する必要があります。
  7. サービス アカウントのメールアドレスをメモします。(メールアドレスは [認証情報] ページに表示されます)。このアドレスは、お使いのサービス アカウントに YouTube CMS アカウントへのアクセス権を付与するために必要です。
  8. https://www.youtube.com/content_owner_users にアクセスして、[新しいユーザー] ボタンをクリックします。
  9. [メールアドレス] に手順 7 で使用したサービス アカウントのメールアドレスを入力し、ユーザーに適したロールを選択します。[招待] ボタンをクリックします。
  10. サービス アカウントが招待を自動的に承認すると、そのサービス アカウントはその後、お客様の YouTube CMS アカウントに代わって動作する YouTube API にアクセスできるようになります。
  11. リクエストの承認ガイドの OAuth 2.0 サービス アカウントのフローの手順に沿って、サービス アカウントを使用してリクエストを承認します。

API 呼び出しを行う

ほとんどの言語のクライアント ライブラリは、サービス アカウント フローの OAuth 2.0 をネイティブにサポートしています。ライブラリのドキュメントの例に従って、適切な YouTube API スコープを使用して基本的な認証を行うことができます。

最も注意すべきは、CMS アカウントにリンクされている特定のチャンネルの代理としてふさわしい委任パラメータを使用することです。CMS アカウントにリンクされているチャンネルの一覧を表示するには、https://cms.youtube.com/edit_user_accounts にアクセスします。