You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何自动化获取YouTube Analytics指标并跳过OAuth2手动授权?

解决方案:用服务账号实现YouTube Analytics API的无手动授权自动化

当然可以实现!核心是改用**服务账号(Service Account)**来完成OAuth2认证,替代原来需要手动点击授权的授权码流程。这样你的脚本就能完全自动化运行,和其他指标的cron任务无缝整合。下面是具体步骤和代码示例:

一、为什么服务账号适合你的场景

服务账号是Google专为服务器端/自动化脚本设计的认证方式,不需要用户手动干预,只要提前配置好权限,脚本就能长期自动调用API。这完美适配你用cron定时获取数据的需求。

二、配置服务账号并授权频道访问

  1. 在Google Cloud Console准备服务账号

    • 打开你的Google Cloud项目(如果没有就新建一个),启用YouTube Analytics APIYouTube Data API v3(后者辅助关联频道,核心是Analytics API)。
    • 进入「IAM与管理」→「服务账号」,点击「创建服务账号」,填写名称和描述后完成创建。
    • 点击刚创建的服务账号,切换到「密钥」标签页,点击「添加密钥」→「创建新密钥」,选择JSON格式,下载密钥文件(保存到安全的地方,不要泄露)。
  2. 给服务账号授予YouTube频道的分析权限

    • 打开YouTube Studio,进入你的频道设置→「权限」→「添加用户」。
    • 输入服务账号的邮箱(就是JSON密钥文件里的client_email字段值),选择「查看分析数据」权限(足够获取你需要的指标),发送邀请后确认授权。

三、修改Python脚本使用服务账号认证

替换原来的OAuth授权流程,用服务账号密钥直接生成认证凭据。这里是示例代码:

from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

# 加载服务账号密钥
SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly']
SERVICE_ACCOUNT_FILE = '/path/to/your/service-account-key.json'

credentials = Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

# 构建YouTube Analytics服务
youtube_analytics = build('youtubeAnalytics', 'v2', credentials=credentials)

# 调用API获取单视频的平均观看百分比和时长
response = youtube_analytics.reports().query(
    ids='channel==UCxxxxxxx',  # 替换成你的频道ID
    startDate='2024-01-01',
    endDate='2024-01-31',
    metrics='averageViewPercentage,averageViewDuration',
    dimensions='video',
    sort='-averageViewPercentage'
).execute()

# 处理返回结果
for row in response['rows']:
    video_id, avg_view_pct, avg_view_duration = row
    print(f"视频ID: {video_id}, 平均观看百分比: {avg_view_pct}%, 平均观看时长: {avg_view_duration}秒")

四、关键注意事项

  • 频道权限必须配置正确:服务账号默认无法访问任何YouTube频道,必须通过YouTube Studio添加授权,否则会返回权限错误。
  • API配额限制:YouTube Analytics API有每日配额(默认是10,000单位),每次reports.query调用消耗1单位,所以要确保你的cron任务频率不会超过配额(比如每日调用几次完全没问题)。
  • 测试先在本地完成:先在本地运行脚本确认能拿到数据,再部署到cron任务里,避免线上调试麻烦。

这样修改后,你就可以把这段脚本加入到现有的cron任务中,完全自动化获取所需的YouTube视频指标,再也不需要手动登录授权了。

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

火山引擎 最新活动