我在Fedora 28操作系统上,有youtube-dl
版本的2019.03.18
,我想从youtube上下载所有的subs,并且只下载Crashcourse播放列表的子程序,其中包括45个视频。
我希望所有的子程序都写在一个*.txt文件中,这样我就可以编辑它并打印- it格式(与evince
一起),并应用适当的页面编号/页眉/页脚。
我尝试了以下几点:
youtube-dl --skip-download --write-sub --playlist-items 6-10 >> all-subs.txt
然而,这只是将“冗长”的输出写到all-subs.txt
,而只是下载了*.vtt格式的子程序(我不知道为什么youtube-dl
不会以任何其他格式下载,即使被要求这样做,一个小故障仍然没有解决)。
发布于 2019-03-30 19:15:57
youtube-dl
似乎不支持这种特性,但您可以使用cat
连接所有下载的文件:
$ youtube-dl --output '%(autonumber)s.%(ext)s' --skip-download --write-sub 'https://www.youtube.com/watch?v=-5wpm-gesOY' 'https://www.youtube.com/watch?v=w3_0x6oaDmI'
[youtube] -5wpm-gesOY: Downloading webpage
[youtube] -5wpm-gesOY: Downloading video info webpage
[info] Writing video subtitles to: 00001.en-GB.vtt
[youtube] w3_0x6oaDmI: Downloading webpage
[youtube] w3_0x6oaDmI: Downloading video info webpage
[info] Writing video subtitles to: 00002.en.vtt
$ cat ./* > all-subs.vtt
请注意,需要%(autonumber)s
来按顺序连接文件。从播放列表下载时,可以使用%(playlist_index)s
。
我不知道为什么
youtube-dl
不会以任何其他格式下载,即使被告知这样做,一个仍未解决的故障。
虽然可以使用--sub-format
选项请求特定的格式,但请注意,这种格式的可用性取决于网站。据我所知,YouTube只提供ttml
和vtt
文件(而且我可以下载两种格式的字幕):
$ youtube-dl --list-subs 'https://www.youtube.com/watch?v=-5wpm-gesOY'
...
Available subtitles for -5wpm-gesOY:
Language formats
en-GB vtt, ttml
ru vtt, ttml
fr vtt, ttml
...
$ youtube-dl --output '%(autonumber)s.%(ext)s' --skip-download --sub-format 'vtt' --write-sub 'https://www.youtube.com/watch?v=-5wpm-gesOY'
[youtube] -5wpm-gesOY: Downloading webpage
[youtube] -5wpm-gesOY: Downloading video info webpage
[info] Writing video subtitles to: 00001.en-GB.vtt
$ youtube-dl --output '%(autonumber)s.%(ext)s' --skip-download --sub-format 'ttml' --write-sub 'https://www.youtube.com/watch?v=-5wpm-gesOY'
[youtube] -5wpm-gesOY: Downloading webpage
[youtube] -5wpm-gesOY: Downloading video info webpage
[info] Writing video subtitles to: 00001.en-GB.ttml
https://unix.stackexchange.com/questions/509610
复制相似问题