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

如何避免手动获取OAuth 2.0授权码,自动运行YouTube Analytics API脚本?

解决YouTube Analytics API自动运行的OAuth授权问题

要实现脚本每日自动运行、无需手动授权,**服务账号(Service Account)**是适配无人值守场景的最优方案,可替代普通OAuth授权流程,具体步骤如下:

  • 配置服务账号

    1. 登录Google Cloud控制台,进入对应项目,前往「IAM与管理」→「服务账号」,创建新服务账号
    2. 为该服务账号生成JSON格式密钥文件,下载后妥善保存(切勿泄露)
    3. 在YouTube Studio中,将服务账号的邮箱地址添加为频道管理员(必须是管理员权限,否则无法读取Analytics数据)
  • 修改代码适配服务账号
    替换原有的get_service()实现,使用服务账号凭据初始化客户端,示例代码如下:

    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    
    # 定义API权限范围
    SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly']
    # 替换为你的密钥文件实际路径
    SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-key.json'
    
    def get_service():
        credentials = service_account.Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE, scopes=SCOPES)
        return build('youtubeAnalytics', 'v2', credentials=credentials)
    
    # 原查询逻辑保留,注意替换channel==MINE为具体频道ID
    youtubeAnalytics = get_service()
    
    result = execute_api_request(
        youtubeAnalytics.reports().query,
        ids='channel==UCxxxxxxxxx',  # 替换为你的频道ID
        startDate=format_week,
        endDate=format_today,
        metrics='estimatedMinutesWatched,views,likes,subscribersGained',
        dimensions='video',
        sort='-views',
        maxResults=20
     )
    
  • 关键注意事项

    • 服务账号无法使用channel==MINE,必须手动指定频道ID,可在YouTube Studio→设置→频道→高级设置中获取
    • 必须确保服务账号邮箱已被添加为频道管理员,否则会返回权限不足错误
    • 密钥文件属于敏感信息,不要提交到代码仓库或公开场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:05:16