从YouTube视频中提取自动字幕

问题描述 投票:23回答:4

我在从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代码(虽然这也是可能的)。一定有办法......请帮忙!

php video youtube closed-captions
4个回答
4
投票

您需要先调用另一个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来解决这个问题。但对于另一个视频,它运作良好:

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


2
投票

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


2
投票

花了一些时间后,我的建议在这里:


© www.soinside.com 2019 - 2024. All rights reserved.