如何使用 youtube-dl 下载视频列表的字幕?我需要一个选项。但是我找不到只下载字幕的选项
答案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
如果视频只有自动生成的字幕,则--all-subs
仍然不会下载,而是使用:
youtube-dl --write-auto-sub --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
答案2
或者您只能下载一个字幕
youtube-dl --write-sub --sub-lang en --skip-download URL
答案3
只需运行以下命令
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 = ['-->','</c>']
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))
输出newfile.txt:
I’m Elon Musk.
What is your claim to fame?
I’m the founder of
Tesla.com.
答案4
从 YouTube 下载字幕的另一种简单方法是下载Google2SRT。Google2SRT 是一款适用于 Windows、Mac 和 Linux 的免费开源程序,能够从 YouTube 视频中下载、保存和转换多个字幕。
用法
单击链接查看步骤 1 和 2 的屏幕截图。
查看在SRT 字幕文本框来定位 SRT 文件。