关于YouTube API中statistics.dislikeCount()的认证相关问题咨询
YouTube API: 关于 videos.statistics.dislikeCount 的认证与操作指南
1. 核心现状与认证要求
首先明确:YouTube在2021年11月更新政策后,官方API仅向视频上传者本人返回真实的dislikeCount数值。普通开发者(非视频所有者)的任何API请求,该字段都会返回0或直接从响应中移除。
认证要求:
- 仅当你是目标视频的上传者时,需要通过OAuth 2.0授权获取真实数据,授权范围至少需要
https://www.googleapis.com/auth/youtube.readonly(更高权限如youtube也适用),且授权账号必须是视频的所属账号。 - 非上传者身份:无论使用API密钥还是OAuth授权,都无法获取真实的不喜欢计数。
2. 是否需要针对每个频道单独授权?
不需要。OAuth 2.0授权是绑定你的开发者账号关联的用户账号,而非目标频道:
- 如果你是多个频道/视频的上传者,用同一个账号完成一次OAuth授权后,就能获取该账号下所有视频的dislikeCount。
- 非上传者身份不存在“针对目标频道授权”的必要——因为授权了也拿不到数据。
3. 操作步骤(仅适用于视频上传者)
步骤1:配置Google Cloud项目与API
- 登录Google Cloud控制台,新建项目。
- 在API库中搜索并启用YouTube Data API v3。
- 前往“凭据”页面,创建OAuth客户端ID(根据你的应用类型选择,比如桌面应用选“桌面应用”),配置回调地址(桌面应用可直接用默认的
http://localhost)。
步骤2:完成OAuth授权流程
- 使用Google官方客户端库(比如Python的
google-api-python-client)实现授权:- 生成授权URL,引导上传者账号登录并授权。
- 获取授权令牌,保存为本地文件(如
token.json)用于后续请求。
步骤3:调用API获取dislikeCount
- 初始化YouTube服务对象,传入OAuth凭据。
- 调用
videos.list接口,指定part=statistics和目标视频ID。
示例代码(Python):
from googleapiclient.discovery import build from google.oauth2.credentials import Credentials # 从本地授权文件加载凭据(需先完成OAuth流程) creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/youtube.readonly']) youtube_service = build('youtube', 'v3', credentials=creds) # 请求视频统计数据 video_request = youtube_service.videos().list( part='statistics', id='VIDEO_ID_HERE' ) response = video_request.execute() # 仅当授权账号是视频上传者时,返回真实数值 stats = response['items'][0]['statistics'] if 'dislikeCount' in stats: print(f"不喜欢计数: {stats['dislikeCount']}") else: print("无法获取真实的不喜欢计数(非上传者身份或API限制)")
关键注意事项
- 非上传者如需获取dislikeCount,只能依赖第三方非官方数据源,但这类行为违反YouTube服务条款,存在封号或法律风险。
- OAuth令牌有有效期,需使用刷新令牌定期更新,避免授权失效。
内容的提问来源于stack exchange,提问作者roboticgrain
相关产品推荐
相关产品推荐

