下载标题总是返回403

时间:2015-06-04 20:48:47

标签: youtube-api youtube-data-api

当我使用我们从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

任何想法可能会发生在这里?

4 个答案:

答案 0 :(得分:3)

来自YouTube API docs

  

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

答案 1 :(得分:1)

您上面写的关于的内容“仅适用于您的Google帐户所拥有的视频” 我的体验。我只是成功地运行了captions.download一个视频(关于狗训练),我绝对不拥有 - 甚至没有狗。但是,我在提到here on stackoverflow的视频上测试了完全相同的代码并得到403错误。

所以没有它并不总是返回403有时会返回200!尝试使用上面提到的狗视频:

python captions.py --videoid="=jBN2_YuTclU" --action="download" --captionid='8S2GjnNfitU5HHoLyTeLxq_W1dP29YRFC8E8vFBUtws='

使用您可能已拥有的代码here

您需要从某个地方的Google凭据页面下载client_secrets.json,并从here获取遗失的文件youtube-v3-api-captions.json。该代码将启动一个浏览器,您可以在其中登录OAuth2授权。

但是,必须有一个理由说明它适用于某些视频而非其他视频。 @Abhishek可能在上面。错误的评论在那里得到了赞扬。对于允许下载字幕的视频而言,captions.list的输出中没有任何内容,而没有明显不同的视频则无法解释为什么一个有效,另一个无效。如果有人可以在youtube api控件中提供哪个{'key':'value'}对,这将会有所帮助。

答案 2 :(得分:0)

相反caption download API有时会返回403(如果视频没有为此标题启用第三方贡献),您可以使用youtube.com/api/timedtext

答案 3 :(得分:-1)

状态403 Forbidden意味着没有人有权访问该URL。例如,如果您的API密钥错误,则不应该收到该消息;应该给Status 401 Unauthorized。我仔细检查了网址。