Youtube HTTP Request



我想从YouTube视频中获取字幕,我已经看到,对于被人类通过HTTP请求订阅的视频来说,这很容易做到,如下所示:

https://www.youtube.com/api/timedtext?v=[LINK]&lang=en

当我尝试使用自动生成的字幕进行操作时,问题就出现了,因为它给了我一个空白页。

我尝试转到chrome的网络选项卡以了解浏览器执行哪种HTTP请求,我发现它使用相同的链接,但每个youtube视频中都有更具体的参数:

签名:两个十六进制数字,由一个点分隔,每个

点长度为 40过期:长度为 10 的十进制数

其他参数是相等的,所以我需要弄清楚如何获取它们。我找不到任何可以帮助我解决此特定问题的 API。

那么,为什么要检查网络调用并从那里弄清楚。我认为谷歌使用 protobuf 传输数据,所以祝你好运尝试解密参数。

为什么不使用他们的官方 API 并以正确合法的方式进行操作?

你想要的是字幕。 以下是有关其 API 的文档: https://developers.google.com/youtube/v3/docs/captions

您可能希望首先调用"list"方法来获取视频的所有可用字幕轨道的列表。然后使用"下载"方法来获取字幕。

上述指向文档的链接还包括您需要的代码示例。

另一种方法是:

1( 呼叫 http://www.youtube.com/get_video_info?&video_id=videoID

2( 将响应解析为查询字符串(URL 编码字符串(

3(将字符串转换为数组/对象

4( 用于获取字幕轨道(包括自动生成的字幕(的 URL 将出现在"player_response"属性中。

最新更新