无法在Youtube API v3中下载隐藏式字幕

时间:2015-05-28 18:12:12

标签: php youtube-api google-api-php-client closed-captions youtube-data-api

我正在使用Youtube API v3:https://developers.google.com/youtube/v3/docs/captions/download中提供的PHP示例代码,从我的网络应用程序中下载第三方公开提供的YouTube视频的标题,即我没有在Youtube上上传内容。

我可以访问字幕轨道的列表,但无法使用收到列表中的字幕轨道ID 下载字幕。

尝试下载时出现的错误是:

  

调用GET https://时出错   www.googleapis.com/youtube/v3/captions/Lw0e5xDNU17GFafOl8DcyeOtwzWJTf9V?tfmt=srt&alt=media:   (404)未找到

(我尝试删除tfmt(可选参数),但仍然出错。)

但尝试删除字幕时错误不同:

  

调用DELETE https://时出错   www.googleapis.com/youtube/v3/captions?id=Lw0e5xDNU17GFafOl8DcyeOtwzWJTf9V:   (403)禁止

因此,对于除了所有者以外的用户,似乎不禁止使用captions.download(就像不禁止使用captions.list),因此我想将此数据用于我的webapp。

感谢任何帮助。

谢谢,

尼基尔

2 个答案:

答案 0 :(得分:1)

我刚尝试过您在浏览器和API资源管理器中提到的网址,在这两种情况下,当我没有oAuth令牌时我收到了401,而当我有访问令牌时收到了403(因为我不是所有者) ),所以端点按预期行事;根据{{​​3}},下载字幕需要得到视频所有者的oAuth同意。

也许,如果您正在使用404,那么PHP库中存在问题吗?

答案 1 :(得分:1)

我找到了另一种访问任何YouTube视频字幕数据的方法。 代码是用Ruby编写的。

Read Youtube transcript (captions) from any public Youtube video

效果很好,我只需要找到一种方法将其与我的webapp集成。