使用YouTube API下载CC时权限不足问题求助
解决YouTube API下载字幕权限不足的问题
1. 确认OAuth授权范围(Scopes)是否正确
下载字幕需要指定符合要求的API授权范围,官方默认代码的scope可能不满足需求,需确保包含以下任意一个:
https://www.googleapis.com/auth/youtubehttps://www.googleapis.com/auth/youtubepartnerhttps://www.googleapis.com/auth/youtube.readonly(仅适用于允许公开下载的字幕)
检查代码中的SCOPES变量,比如设置为:
SCOPES = ["https://www.googleapis.com/auth/youtube.readonly"]
如果是下载自己上传的视频字幕,推荐使用权限更高的https://www.googleapis.com/auth/youtube。
2. 验证OAuth客户端ID配置
- 确保在Google Cloud Console创建的是桌面应用类型的OAuth客户端ID,脚本类应用需要对应类型的凭证,不要用Web应用或其他类型。
- 核对OAuth JSON文件里的
client_id、client_secret等信息,避免复制错误。
3. 检查字幕的可下载权限
即使是公共视频,字幕是否允许下载由视频所有者决定。如果所有者关闭了下载权限,API权限正确也无法获取。可以手动打开视频页面,查看字幕设置里是否有“下载字幕”选项,验证权限状态。
4. 确认字幕ID与视频的关联
检查使用的字幕ID AUieDaa7Bb0_-GBwVIYbXKsnPYAP3Q5FsPB4xMEnMemuWk4L8rU 是否属于目标视频,避免输入错误。可以用以下代码片段查询字幕对应的视频ID:
request = youtube.captions().list( part="snippet", id="AUieDaa7Bb0_-GBwVIYbXKsnPYAP3Q5FsPB4xMEnMemuWk4L8rU" ) response = request.execute() print(response["items"][0]["snippet"]["videoId"])
5. 重新生成OAuth授权缓存
旧的授权缓存可能导致权限异常,删除脚本生成的token.json文件(如果存在),重新运行脚本完成OAuth授权流程,确保新授权包含正确的scope。
内容的提问来源于stack exchange,提问作者JoaoVel
相关产品推荐
相关产品推荐

