【GAS】YouTubeブランドアカウントのOAuth認証でエラーが出る時の対処法

Google Apps Script(GAS)を使ってYouTubeの再生リストを取得しようとした際、
ブランドアカウント を使っていることが原因で認証エラーになることがありました。

その回避方法をメモ書きしておきます。

発生した問題

GASでYouTube Data APIを利用し、自分のブランドアカウントの再生リストを取得しようとすると、以下のエラーが発生したり、認証がループする。

  • エラー内容: このプロジェクトを実行するには、ご利用の Google アカウントへのアクアセスを許可する必要があります。再試行して、許可してください。
  • 状況:
    • GoogleのAPIテストツール(API Explorer)では動作する。
    • GAS上ではエラーになる。
    • 使用しているYouTubeチャンネルは**「ブランドアカウント」**。

原因:GASとブランドアカウントの相性

GASのスクリプト実行主体は、常に「ログインしているメインのGoogleアカウント(Gmailアドレス)」になります。

一方、YouTubeの「ブランドアカウント」はメインアカウントとは別のIDとして管理されてると推測されます。

  1. GAS(メインアカウント) がAPIを叩く。
  2. YouTube(ブランドアカウント) の「非公開」再生リストを見に行こうとする。
  3. YouTube側は「メインアカウントには、このブランドアカウントの非公開データを見る権限がない」と判断する。
  4. 結果、認証エラーや権限エラー(403)が返される。

解決策:再生リストを「限定公開」にする

取得したい再生リストの公開設定を限定公開に変更して解決しました。

手順

  1. YouTube Studioで、取得したい再生リストの設定を開く。
  2. 公開設定を「非公開」から**「限定公開(Unlisted)」**に変更する。
  3. GASを実行する際、メインのGoogleアカウントで認証を通す。

\ 最新情報をチェック /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です