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

Unable to download closed captions in Youtube API v3

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

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

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

Error calling GET https:// www.googleapis.com/youtube/v3/captions/Lw0e5xDNU17GFafOl8DcyeOtwzWJTf9V?tfmt=srt&alt=media: (404) Not Found

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

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

Error calling DELETE https:// www.googleapis.com/youtube/v3/captions?id=Lw0e5xDNU17GFafOl8DcyeOtwzWJTf9V: (403) Forbidden

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

非常感谢任何帮助。

谢谢,

尼基尔

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

也许,如果您收到的是 404,是 PHP 库有问题?

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

Read Youtube transcript (captions) from any public Youtube video

效果很好,我只需要找到一种方法将其与我的网络应用程序集成。