下载字幕总是返回 403

问题描述 投票:0回答:4

当我使用从

captions.download
端点检索的 ID 调用
captions.list
端点时,它始终返回 403。例如:

https://www.youtube.com/watch?v=1HRwpwOj4aA

我打电话给

captions.list

GET https://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="
  }
 ]
}

当我使用上面的id调用captions.download时:

GET https://www.googleapis.com/youtube/v3/captions/kHlUsiuNS4TjB25loauZNXGrjK91I1tEdNyOpTRNA78%3D?key={YOUR_API_KEY}

这是回复:

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

你知道这里会发生什么吗?

youtube-api youtube-data-api
4个回答
4
投票

来自 YouTube API 文档

403 Forbidden:与请求关联的权限不存在 足以下载字幕轨道。该请求可能不是 正确授权,或者视频订单可能未启用 此标题的第三方贡献。


2
投票

有时会返回 403 的字幕下载 API(如果视频未为此字幕启用第三方贡献),您可以使用 youtube.com/api/timedtext


0
投票

您上面写的关于“仅适用于您的谷歌帐户拥有的视频”不是我的经验。我刚刚成功地在一个视频(关于狗训练)上运行了 Captions.download,该视频绝对不属于我 - 甚至没有狗。但是,我在 stackoverflow 上提到的视频中测试了完全相同的代码,并得到了 403 错误。 所以

它并不总是返回 403 有时它会返回 200!尝试一下上面提到的狗视频: python captions.py --videoid="jBN2_YuTclU" --action="download" --captionid='8S2GjnNfitU5HHoLyTeLxq_W1dP29YRFC8E8vFBUtws='

您可能已经拥有代码
这里

它将需要您从 Google 凭据页面的某处下载

client_secrets.json

以及丢失的文件

youtube-v3-api-captions.json
,您可以从
此处
获取该文件。该代码会启动一个浏览器,您可以在其中登录以获取 OAuth2 授权。 尽管如此,它对某些视频有效而对其他视频无效肯定是有原因的。 @Abhishek 上面可能有。错误的评论已在那里被投票。对于允许下载字幕的视频和不允许下载字幕的视频,

captions.list

的输出没有任何明显的不同,这可以解释为什么一个有效而另一个无效。如果有人可以提供 youtube api 中的哪对

{'key':'value'}
控件,这将会很有帮助。
    


-3
投票

© www.soinside.com 2019 - 2024. All rights reserved.