如何获取 YouTube 视频的字幕并单独显示?

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

我正在制作一个双语应用程序来学习英语。我将在应用程序中插入一个 YouTube 视频,并在下面显示字幕。有什么方法可以直接从 youtube 视频播放器获取字幕并单独显示吗?

enter image description here

我看到一些当前的应用程序也在这样做。不知道他们做得怎么样?或者我是否必须手动获取每个视频的字幕然后将其保存到数据库中,然后处理并显示它们?但数据量会很大,有几千万个视频,每个视频都有几十个不同语言的字幕。

enter image description here

我搜索了很多,但没有找到任何人回答这个问题。很多年前的帖子也没有答案。有人有什么想法吗?谢谢你。

javascript node.js reactjs react-native youtube-api
4个回答
8
投票

经过一番查找终于找到了解决方案。

您必须首先从视频网址(例如

https://www.youtube.com/watch?v=someID
)获取整个页面,然后从整个响应中搜索如下网址:
https://www.youtube.com/api/timedtext?...

它包含临时签名以及下载成绩单所需的所有其他内容。 (免责声明:尚未测试签名是否过期 --> 编辑:它会在大约 24 小时内过期)

之后,您只需要提取整个 url - 我使用了正则表达式 - 并使用 decodeURI() 方法对其进行解码以转义所有 Unicode 字符:)

它应该返回类似:

enter image description here


0
投票

您可以使用 Youtube API 来实现此目的:

  1. 首先使用 https://developers.google.com/youtube/v3/docs/captions/list
  2. 检索字幕列表
  3. https://developers.google.com/youtube/v3/docs/captions/download
  4. 下载字幕

然后您可以访问媒体播放器(和当前时间)的控件以显示正确的字幕:请参阅 HTMLMediaElement API 了解这一点。


0
投票

您应该检查 youtube api 来获取字幕:https://developers.google.com/youtube/v3/docs/captions/list?apix_params=%7B%22part%22%3A%22snippet%22%2C%22videoId %22%3A%22PRU2ShMzQRg%22%7D

从那里您可以单独获得字幕和视频


0
投票

使用 Supadata,这是一个免费的 API,可提供对 YouTube 转录内容的访问。

具体来说,

/v1/youtube/transcript
将执行您的要求 - 通过视频 ID 返回文字记录。

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