rya*_*ard 7 youtube-api youtube-data-api
这是一个重复的问题,如果你不是它的所有者,YouTube API是否禁止下载视频字幕?,获取YouTube字幕,如果您不是所有者,YouTube API是否禁止下载视频字幕?除非您是所有者或第三方贡献未启用,否则所有人基本上都说不可能通过YouTube API下载字幕.但是,我的问题是如何访问http://downsub.com/或http://www.lilsubs.com/这样的网站可以访问所有字幕?
换句话说,当我自己访问YouTube API时(即使使用youtubepartner和youtube.force-ssl范围),我只能下载某些视频的标题,但是当我尝试403: The permissions associated with the request are not sufficient to download the caption track. The request might not be properly authorized, or the video order might not have enabled third-party contributions for this caption.在这些其他网站上为我失败的相同视频时,它可以正常工作.我假设他们使用YouTube API访问字幕,但他们使用了什么特别的酱?一些特殊的合作伙伴关 一个不同的API版本?他们只是从视频本身或其他东西上刮下来的吗?
C-Y*_*C-Y 18
2022 年的答案:
方案一:向网页发送curl请求:curl -L "https://youtu.be/YbJOTdZBX1g",在结果中搜索timedtext,会得到一个URL。替换\u0026为&,您将获得字幕的链接。
选项yt-dlp2:从命令行使用 youtube-dl 或,或作为 Python 包:
# For installing see: https://github.com/yt-dlp/yt-dlp#with-pip
from yt_dlp import YoutubeDL
ydl_opts = {
"skip_download": True,
"writesubtitles": True,
"subtitleslangs": ["all", "-live_chat"],
# Looks like formats available are vtt, ttml, srv3, srv2, srv1, json3
"subtitlesformat": "json3",
# You can skip the following option
"sleep_interval_subtitles": 1,
}
with YoutubeDL(ydl_opts) as ydl:
ydl.download(["YbJOTdZBX1g"])
Run Code Online (Sandbox Code Playgroud)
在以下位置发送GET请求:
http://video.google.com/timedtext?lang={LANG}&v={VIDEOID}
Run Code Online (Sandbox Code Playgroud)
带有注释的视频示例:http : //video.google.com/timedtext?lang=ko&v=0db1_qWZjRA
让我们看看您的另一个示例,即https://www.youtube.com/watch?v=7068mw-6lmI(我同意您的评论中的区分部分)。
该视频有多个字幕
这些代表字幕name参数(即name = English)。
lang代表国家/地区代码。在您的示例中:https://www.youtube.com/api/timedtext?lang=es-MX&v=7068mw-6lmI&name=Spanish
如果字幕轨道可用,则可以对其进行翻译,即使用tlang参数。
https://www.youtube.com/api/timedtext?lang=en&v=7068mw-6lmI&name=English&tlang=lv
https://www.youtube.com/api/timedtext?lang=ko&v=7068mw-6lmI&name=Korean&tlang=lv
Run Code Online (Sandbox Code Playgroud)
这就是我对这些网站使用的出价,即翻译可用的字幕轨道(通过尝试使用不带字幕轨道的视频作为其站点之一的输入来确认)。
至于asr签名似乎总是需要的,但是只要其中一个字幕轨道可用,您就可以将其用于翻译。例如,在您的OP注释示例中:
https://www.youtube.com/api/timedtext?lang=en&v=vx6NCUyg1NE&tlang=lv
Run Code Online (Sandbox Code Playgroud)
看起来最后一个示例很特殊,两个字幕轨道均为asr(checked with Chrome -> Inspect -> Network),因此您需要省略字幕name参数部分。不幸的是,这种差异在YouTube视频的设置盘中看不到。
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |