You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GCloud与Python脚本向YouTube playlist添加视频时权限不足问题排查

解决YouTube Data API添加视频到个人Playlist的403权限不足问题

问题根源分析

  1. 认证方式错误:你使用的gcloud auth application-default login是为Google Cloud服务账号设计的应用默认凭据,但操作个人YouTube Playlist需要的是用户级OAuth 2.0授权——个人Playlist属于你的YouTube账号私有数据,不属于Google Cloud项目资源,服务账号凭据无权访问这类用户私有内容。
  2. IAM角色误解:roles/youtube.fullAccess是YouTube Studio专属角色,不属于Google Cloud项目的IAM角色体系,因此在gcloud项目中绑定该角色会直接报错,这个操作本身没有意义。
  3. 凭据缓存冲突:本地可能残留旧的应用默认凭据,导致脚本没有使用你预期的用户账号权限。

修复步骤

1. 修改Python脚本,改用用户OAuth 2.0授权

替换原有的认证逻辑,使用用户OAuth流程获取可访问个人YouTube数据的凭据:

import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

# 定义所需权限范围
SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']

def main():
    # 初始化OAuth授权流,需提前准备客户端密钥JSON文件
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        'client_secret.json', SCOPES)
    creds = flow.run_local_server(port=0)

    # 创建YouTube服务实例
    youtube_service = build('youtube', 'v3', credentials=creds)

    playlist_id = 'PLNpx7L8t1Ikm41ZahIv7JpW0DlPmJe_Ky'
    video_ids = ['jZcLBeba6eY', 'WYp9Eo9T3BA', 'jZ2mQqMCt_c']

    for video_id in video_ids:
        try:
            add_video_request = youtube_service.playlistItems().insert(
                part="snippet",
                body={
                  "snippet": {
                    "playlistId": playlist_id,
                    "position": 0,
                    "resourceId": {
                      "kind": "youtube#video",
                      "videoId": video_id
                    }
                  }
                }
            )
            response = add_video_request.execute()
            print(f'已将视频ID "{video_id}" 添加到播放列表 "{playlist_id}"')
        except HttpError as error:
            print(f'添加视频 "{video_id}" 失败: {error}')

if __name__ == "__main__":
    main()

2. 准备OAuth客户端密钥文件

  • 登录Google Cloud控制台,进入你的playlistyoutube-384311项目
  • 导航到API和服务 > 凭据
  • 点击创建凭据 > OAuth客户端ID
  • 应用类型选择桌面应用,填写名称后完成创建
  • 下载生成的JSON文件,重命名为client_secret.json,放在脚本同目录下

3. 清理旧的应用默认凭据(推荐)

在Windows的gcloud终端执行以下命令,清除可能干扰的旧凭据缓存:

gcloud auth application-default revoke

4. 启用YouTube Data API v3

确保你的Google Cloud项目已启用该API:

  • 控制台导航到API和服务 > 库
  • 搜索"YouTube Data API v3",点击启用

验证执行

运行修改后的脚本,会自动弹出浏览器引导你用aaabbb@gmail.com账号完成授权,授权通过后即可正常将视频添加到个人Playlist。

内容的提问来源于stack exchange,提问作者user332153

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:03:12