如何使用youtube-dl下载视频列表的字幕?我需要一个选项。但是我找不到仅下载字幕的选项

评论

该选项是--skip-download

我对为什么这个问题如此受欢迎感到困惑。这些人都想从YouTube视频下载字幕的用例是什么?为什么YouTube字幕(在很多情况下是不存在的或无法自动生成的)比合适的字幕文件有用?

也许是因为他已经下载了视频,并且不想再次下载它们,只是想立即下载字幕,因为他以前没有得到这些字幕。这就是为什么我使用此选项的原因。
或者它弄乱了--embed-subtitles步骤,所以我想再次单独下载它们。 (我已提交了错误报告,但此回购暂时停止了)

@Prometheus…也许是因为YouTube字幕不是标准的.srt格式,所以他得到了YT带时间戳的共振峰,现在想要.srt…我在这里是因为我的视频没有字幕,所以我想轻松获得它们。 br />

#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