Youtube api 下载字幕总是返回403
当我调用Youtube api 下载字幕总是返回403,youtube-api,youtube-data-api,Youtube Api,Youtube Data Api,当我调用captions.download端点时,该端点的ID是我们从captions.list端点检索到的,它总是返回403。例如: 我调用标题。列出带有以下内容的: GEThttps://www.googleapis.com/youtube/v3/captions?part=id&videoId=1HRwpwOj4aA&key={YOUR_API_KEY} 以下是回应: cache-control: private, max-age=0, must-revalidate, no-tran
captions.download
端点时,该端点的ID是我们从captions.list
端点检索到的,它总是返回403。例如:
我调用标题。列出带有以下内容的:
GEThttps://www.googleapis.com/youtube/v3/captions?part=id&videoId=1HRwpwOj4aA&key={YOUR_API_KEY}
以下是回应:
cache-control: private, max-age=0, must-revalidate, no-transform
content-encoding: gzip
content-length: 236
content-type: application/json; charset=UTF-8
date: Sat, 23 May 2015 17:55:57 GMT
etag: "dhbhlDw5j8dK10GxeV_UG6RSReM/Rztb3ln4Zb6O07vb7_KSZi2y1NM"
expires: Sat, 23 May 2015 17:55:57 GMT
server: GSE
vary: Origin, X-Origin
{
"kind": "youtube#captionListResponse",
"etag": "\"dhbhlDw5j8dK10GxeV_UG6RSReM/Rztb3ln4Zb6O07vb7_KSZi2y1NM\"",
"items": [
{
"kind": "youtube#caption",
"etag": "\"dhbhlDw5j8dK10GxeV_UG6RSReM/pwH-4wtyQJz0U3l57fA8uKm4e1I\"",
"id": "kHlUsiuNS4TjB25loauZNXGrjK91I1tEdNyOpTRNA78="
}
]
}
403 Forbidden
cache-control: private, max-age=0
content-encoding: gzip
content-length: 29
content-type: text/html; charset=UTF-8
date: Sat, 23 May 2015 17:59:05 GMT
expires: Sat, 23 May 2015 17:59:05 GMT
server: GSE
vary: Origin, X-Origin
Forbidden
当我使用上述id调用captions.download时:
GEThttps://www.googleapis.com/youtube/v3/captions/kHlUsiuNS4TjB25loauZNXGrjK91I1tEdNyOpTRNA78%3D?key={YOUR_API_KEY}
以下是回应:
cache-control: private, max-age=0, must-revalidate, no-transform
content-encoding: gzip
content-length: 236
content-type: application/json; charset=UTF-8
date: Sat, 23 May 2015 17:55:57 GMT
etag: "dhbhlDw5j8dK10GxeV_UG6RSReM/Rztb3ln4Zb6O07vb7_KSZi2y1NM"
expires: Sat, 23 May 2015 17:55:57 GMT
server: GSE
vary: Origin, X-Origin
{
"kind": "youtube#captionListResponse",
"etag": "\"dhbhlDw5j8dK10GxeV_UG6RSReM/Rztb3ln4Zb6O07vb7_KSZi2y1NM\"",
"items": [
{
"kind": "youtube#caption",
"etag": "\"dhbhlDw5j8dK10GxeV_UG6RSReM/pwH-4wtyQJz0U3l57fA8uKm4e1I\"",
"id": "kHlUsiuNS4TjB25loauZNXGrjK91I1tEdNyOpTRNA78="
}
]
}
403 Forbidden
cache-control: private, max-age=0
content-encoding: gzip
content-length: 29
content-type: text/html; charset=UTF-8
date: Sat, 23 May 2015 17:59:05 GMT
expires: Sat, 23 May 2015 17:59:05 GMT
server: GSE
vary: Origin, X-Origin
Forbidden
知道这里会发生什么吗?403禁止状态意味着任何人都无权访问该URL。例如,如果您有错误的API密钥,则不应收到该消息;这应该是401状态未经授权。我会仔细检查网址 来自:
403禁止:与请求相关联的权限不可用
足以下载字幕曲目。请求可能不正确
正确授权,否则视频订单可能未启用
此标题的第三方贡献
你上面写的“只适用于你的谷歌账户拥有的视频”不是我的经验。我刚刚成功地运行了字幕。下载了一个视频(关于狗的训练),我肯定没有自己的-甚至没有狗。然而,我在上面提到的视频上测试了完全相同的代码,得到了403错误
所以不它并不总是返回403,有时它返回200!用上面提到的狗视频试试看:
python captions.py --videoid="=jBN2_YuTclU" --action="download" --captionid='8S2GjnNfitU5HHoLyTeLxq_W1dP29YRFC8E8vFBUtws='
使用您可能已经拥有的代码
它需要从Google认证页面的某处下载您的client\u secrets.json
,以及您可以从中获取的缺少文件youtube-v3-api-captions.json
。代码将启动一个浏览器,您可以在其中登录以获得OAuth2授权
尽管如此,它对某些视频有效,而对其他视频无效,这肯定是有原因的@阿披舍克可能有它上面。错误的评论在那里被提高了投票率。字幕的输出中没有任何内容。列出允许字幕下载的视频和不允许字幕下载的视频的
,这可以解释为什么其中一个有效,而另一个无效。如果任何人可以在youtube api控件中提供哪个{'key':'value'}
对,这将很有帮助。相反,有时返回403(如果视频未启用此标题的第三方贡献),您可以使用从youtube团队获得一些反馈,显然,captions.download端点只适用于您的google帐户拥有的视频。它不可用于其他视频。如果视频所有者为标题启用第三方贡献,则可以获取标题。例如:-尝试使用此id:TQXDNLAMG84O4BX0Q2OAHZ4NFWZDYIZMORCUWSLYPC=您无法再启用第三方字幕贡献。如果没有它们,您将得到403“与请求相关联的权限不足以下载字幕曲目。请求可能没有得到正确授权,或者视频订单可能没有为此字幕启用第三方贡献。”