88685


利用者からOAuth認証は求めずに、サービスアカウントで、YouTubeDataAPIを使用し、あらかじめ定められたYouTubeのチャンネルへ動画をアップロードすることは可能でしょうか？

なお、Google Cloud Platformには、以下３種類の認証方法があるとのことです。

  1. APIキー  
匿名ユーザーでAPIを利用する（APIの呼び出しのみをを許可してもらったイメージ）

  2. OAuth 2.0 クライアント ID  
API呼出し前に、利用者に承認してもらったトークンを利用して、利用者のアカウントでAPIを実行する。

  3. サービス アカウント  
OAuthによるユーザーの認証は不要。サービスアカウントに指定されているアカウントでAPIを実行する。

Pythonで動画をアップロードするサンプルは、2.のOAuthを利用しているものしかなく、都度利用者から認証を求める作りになっています。

[Googleのサンプルコード](https://developers.google.cn/youtube/v3/guides/uploading_a_video?hl=ja.)

サービスアカウントでYouTube動画アップロードしているサンプル、参考サイト、書籍などありましたら、教えていただけないでしょうか？

以下は、独自にOAuth認証をサービスアカウントの認証に挿げ替えたコードと、実行結果を示します。

[code]

    credentials = service_account.Credentials.from_service_account_file('colab-329402-XXXXXXXX.json')
    service = build('youtube', 'v3', credentials=credentials)
    # このサービスアカウントでは、YouTubeへ動画をアップロードできなかった。
    
[/code]

以下は実行結果です。401 Unauthorized エラーが発生しました。

[code]

    $ python youtube_upload.py --file="./VID_20220423_185942.mp4" --title="Sample Movie" --description="This is a sample movie." --category="22" --privacyStatus="private"
    auth_host_name / localhost
    noauth_local_webserver / False
    auth_host_port / [8080, 8090]
    logging_level / ERROR
    file / ./VID_20220423_185942.mp4
    title / Sample Movie
    description / This is a sample movie.
    category / 22
    keywords /
    privacyStatus / private
    Uploading file...
    An HTTP error 401 occurred:
    b'{\n  "error": {\n    "code": 401,\n    "message": "Unauthorized",\n    "errors": [\n      {\n        "message": "Unauthorized",\n        "domain": "youtube.header",\n        "reason": "youtubeSignupRequired",\n        "location": "Authorization",\n        "locationType": "header"\n      }\n    ]\n  }\n}\n'
    
[/code]


CC BY-SA 4.0
2022-05-04T16:54:23.817
88651
2022-05-07T07:27:02.493
2022-05-07T07:27:02.493
3060
35267
question
youtube-data-api
サービスアカウントでYouTubeへ動画をアップロードすることは可能？


[YouTubeDataAPIのエラー](https://developers.google.com/youtube/v3/docs/errors?hl=ja)  
のyoutubeSignupRequired欄より、  
「YouTube では Service Account はサポートされていない」ことが分かりました。  
一旦、諦めます。ありがとうございました。


CC BY-SA 4.0
2022-05-07T07:20:15.470
88685
2022-05-07T07:20:15.470
35267
88651
answer