#1 楼
有一个选项,在文档中有明确提及:字幕选项:
--write-sub Write subtitle file
--write-auto-sub Write automatic subtitle file (YouTube only)
--all-subs Download all the available subtitles of the video
--list-subs List all available subtitles for the video
--sub-format FORMAT Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"
--sub-lang LANGS Languages of the subtitles to download (optional) separated by commas, use IETF language tags like 'en,pt'
因此,例如,列出视频的所有字幕:
youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw
要下载所有字幕,而不是视频:
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
评论
我给了文档一个漂亮的外观,却没有找到隐藏在Verbosity / Simulation Options下的--skip-download选项。很高兴@fivetech提出了这个问题,否则我可能仍然会陷入困境。
–扎兹
16年8月7日在19:04
如何下载自动生成的字幕?
–brauliobo
17年9月7日在17:39
显然是在“文档中提到”和“在此答案中明确提到”:“-write-auto-sub写入自动字幕文件(仅YouTube)”
–radekg
17年9月16日在7:41
@brauliobo --write-auto-sub来自文档,youtube-dl --sub-lang LANG --write-auto-sub --skip-download URI。
– Pablo A
18年1月13日在18:35
youtube-dl --sub-lang en --write-auto-sub --sub-format srt --skip-download v0uYZ4rTOrk 1.获取ENG字幕2.获取自动生成的字幕3.获取srt格式的字幕4.执行不下载电影
–死鱼
19年3月21日在16:14
#2 楼
或者您只能下载一个字幕youtube-dl --write-sub --sub-lang en --skip-download URL
评论
或--write-auto-sub用于下载自动生成的字幕!
–Lenar Hoyt
19年11月22日在16:19
#3 楼
从YouTube下载字幕的另一种简单方法是下载Google2SRT。 Google2SRT是适用于Windows,Mac和Linux的免费开源程序,可以从YouTube视频中下载,保存和转换多个字幕。用法
单击链接以查看步骤1和2的屏幕截图。
将URL粘贴在Google字幕文本框中,然后单击“阅读”。
通过选择提供的相应复选框来选择语言,然后按Go 。
查看在SRT字幕文本框中输入的目标文件夹以找到SRT文件。
评论
问题在于它仅适用于YouTube; youtube-dl支持其他数百个网站。
–海顿·希夫(Hayden Schiff)
16年11月14日在2:48
问题是关于youtube-dl。
–user598527
17年4月18日在20:53
非常感谢,jegadesh! Google2SRT正是我从YouTube下载自动生成的隐藏式字幕/字幕所需要的,因为youtube-dl无法正确处理它们(相反,返回foo没有字幕)。
–Miles Wolbe
18-2-4在6:31
@ miles-wolbe如果您能提到YouTube-dl失败的YouTube视频,我将不胜感激。
–naki
19 Mar 19 '19在7:37
@naki youtu.be/nv99gj1xxWw
– Phani Rithvij
20 Mar 5 '20 at 17:46
#4 楼
只需运行以下命令youtube-dl --write-auto-sub --convert-subs=srt --skip-download URL
例如,您正在下载
https://www.youtube.com/watch?v=example。标题为“ example”的
--convert=srt
将输出到名为example.en.srt
的文件,其中en
代表英语es
代表西班牙语等。文件将具有以下内容:
00:00:04.259 --> 00:00:05.259
>> I’m Elon Musk.
00:00:05.259 --> 00:00:06.669
>> What is your claim to fame?
00:00:06.669 --> 00:00:07.669
>> I’m the founder of
00:00:07.669 --> 00:00:08.669
Tesla.com.
可选-如果需要清理文本,则可以使用python稍作清理:
import re
bad_words = ['-->']
with open('example.en.vtt') as oldfile, open('newfile.txt', 'w') as newfile:
for line in oldfile:
if not any(bad_word in line for bad_word in bad_words):
newfile.write(line)
with open('newfile.txt') as result:
uniqlines = set(result.readlines())
with open('sub_out.txt', 'w') as rmdup:
mylst = map(lambda each: each.strip(">>"), uniqlines)
print(mylst)
rmdup.writelines(set(mylst))
输出新文件.txt:
I’m Elon Musk.
What is your claim to fame?
I’m the founder of
Tesla.com.
评论
就像文档中的标记一样:--convert-subs FORMAT将字幕转换为其他格式(当前支持:srt | ass | vtt | lrc)
–lkahtz
20年5月4日,2:50
如果使用--skip-download选项,convert subs似乎不起作用,它只是以vtt格式提供它
–pt123
20年8月29日在22:50
评论
该选项是--skip-download我对为什么这个问题如此受欢迎感到困惑。这些人都想从YouTube视频下载字幕的用例是什么?为什么YouTube字幕(在很多情况下是不存在的或无法自动生成的)比合适的字幕文件有用?
也许是因为他已经下载了视频,并且不想再次下载它们,只是想立即下载字幕,因为他以前没有得到这些字幕。这就是为什么我使用此选项的原因。
或者它弄乱了--embed-subtitles步骤,所以我想再次单独下载它们。 (我已提交了错误报告,但此回购暂时停止了)
@Prometheus…也许是因为YouTube字幕不是标准的.srt格式,所以他得到了YT带时间戳的共振峰,现在想要.srt…我在这里是因为我的视频没有字幕,所以我想轻松获得它们。 br />