28

我在从 YouTube 视频中提取自动字幕时遇到问题。

我尝试使用http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en方法,但该方法仅适用于具有命名曲目的视频。例如,这个没有任何命名的轨道(只有自动字幕)并且没有加载:rrkrvAUbU9Y

有几个网络应用程序可以做到这一点(如http://www.serpsite.com/youtube-subtitles-download-tool/http://mo.dbxdb.com/),但我需要一个脚本,因为我想将它用于我的研究。

任何人都有任何想法得到这个的正确方法是什么?YouTube 的 API 有一些关于字幕的内容,但仅适用于注册用户,而上面的应用程序适用于所有视频,我怀疑它们只是从页面中捕获 html 代码(尽管这也是可能的)。一定有办法……请帮忙!

4

4 回答 4

7

您需要先调用另一个 API:http: //video.google.com/timedtext ?type=list&v=3wszM2SA12E

这将为您提供可用曲目的列表。在您的情况下,只能获得一首曲目:id="0" name="Automatic" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"

在这个特定的视频中,我可以按名称获取曲目name=Automatic

https://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en

但是对于另一个视频id=效果很好:

http://video.google.com/timedtext?type=track&v=zenMEj0cAC4& id=0 &lang=en

于 2017-08-14T13:25:05.393 回答
7

这是我花了一些时间后的建议:

于 2018-05-24T18:18:48.387 回答
1

从页面获取数据的一种好方法是使用 file_get_contents 但这仅视频具有“CC”或字幕按钮时才有效,但是当它这样做时,不幸的是,您可以从 xml 文件中获取所有文本元素的“Youtube to caption”服务声明它需要 youtuber 启用字幕才能获取字幕,所以不幸的是,如果没有启用“CC”,您将无法从视频中获取字幕,但是如果您仍然想要,您可以在 xml 文件上使用 file_get_contents 然后找到所有“文本”标签,然后将其转换为标题。

于 2015-01-30T12:15:42.423 回答