我正在使用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。
感谢任何帮助。
谢谢,
尼基尔
答案 0 :(得分:1)
我刚尝试过您在浏览器和API资源管理器中提到的网址,在这两种情况下,当我没有oAuth令牌时我收到了401,而当我有访问令牌时收到了403(因为我不是所有者) ),所以端点按预期行事;根据{{3}},下载字幕需要得到视频所有者的oAuth同意。
也许,如果您正在使用404,那么PHP库中存在问题吗?
答案 1 :(得分:1)
我找到了另一种访问任何YouTube视频字幕数据的方法。 代码是用Ruby编写的。
Read Youtube transcript (captions) from any public Youtube video
效果很好,我只需要找到一种方法将其与我的webapp集成。