【问题标题】:Extract automatic captions from YouTube video从 YouTube 视频中提取自动字幕
【发布时间】:2012-12-10 09:48:26
【问题描述】:

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

【问题讨论】:

  • 注册用户不使用api是什么原因?
  • @Drifter:你问这个好像拥有 YouTube 帐户是每个人与生俱来的权利。仅仅因为你有一个,并不意味着每个人都可以拥有一个。许多人被法律禁止终身使用 YouTube 帐户。其他人则被无故任意拒绝注册。其他人已经在其他地方拥有足够的帐户,无法管理更多;保留凭证和拥有账户既是负担也是责任。其他人不喜欢被监视。

标签: php video youtube closed-captions


【解决方案1】:

您需要先调用另一个 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

【讨论】:

  • 此 API 是否已关闭?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      【讨论】:

      • 我猜他们正在使用 YT 合作伙伴 API。我想你确实注意到了 expire 参数和签名。
      猜你喜欢
      • 2021-12-25
      • 2012-03-25
      • 2020-06-26
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多