我有来自YouTube的视频中提取自动字幕的问题。
我尝试使用http://video.google.com/timedtext?type=track&v=3wszM2SA12E&name=Automatic&lang=en方法,但一个只适用于那些影片,其中有一个名为轨道。 例如,这一个不具有任何命名轨道(只自动字幕),并且不加载:rrkrvAUbU9Y
有几个Web的应用程序在那里,可以做到这一点(如http://www.serpsite.com/youtube-subtitles-download-tool/和http://mo.dbxdb.com/ ),但我需要一个脚本,因为我想用我的研究。
任何人有任何的想法是什么让这个正确的方法是什么? YouTube的API有一些关于字幕,但只有注册用户,而以上所有的视频工作的应用程序,我怀疑他们只是捕捉来自网页的HTML代码(虽然这也是有可能的)。 必须有一种方式......请帮助!
首先,您需要调用另一个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&郎= EN
关于去从网页中获取数据的一个好方法是使用的file_get_contents但是这只能如果视频有一个“CC”或标题按钮,但是当它,你可以从不幸的是作为记录了一个XML文件中的所有文本元素对的“的Youtube添加字幕”服务说,它需要由YouTube用户得到字幕所以很遗憾你不能从视频字幕没有“CC”已允许的字幕,但是如果你还是想你可以在XML文件中使用的file_get_contents然后找到所有在“文本”标签,然后将这些成字幕。
我正在看downsub.com,发现下面的API调用,这似乎自动生成的字幕工作:
https://www.youtube.com/api/timedtext?expire=1491547251&v=YD1tc8lRsdQ&sparams=asr_langs%2Ccaps%2Cv%2Cexpire&hl=en_US&signature=6241BAB9F7E9DB164AFE496B40B4DA4B58B463FD.D7FEC5B2CC81721AF9928215343509E280FEF6BD&asr_langs=pt%2Cit%2Ces%2Cru%2Cfr%2Cko%2Cde%2Cja% 2Cnl%2Cen&键= yttt1&帽= ASR&种类= ASR&郎= EN