Troubleshooting

youtube-dl,如何將 youtube 播放列表的所有子項寫入一個文件?

  • March 30, 2019

我在 Fedora 28 作業系統上並且有youtube-dl版本2019.03.18,我想從 youtube 上下載所有的訂閱者和只有Crashcourse 播放列表的訂閱者,包括 45 個影片。

我希望將所有子文件寫入單個 *.txt 文件,以便我可以編輯它並列印到 pdf 格式(使用evince),同時應用適當的頁碼/頁眉/頁腳。

我嘗試了以下方法:

youtube-dl --skip-download --write-sub --playlist-items 6-10 <PLAYLIST-URL> >> all-subs.txt

但是,這僅將“詳細”輸出寫入all-subs.txt並下載了 *.vtt 格式的 subs(我不知道為什麼youtube-dl不會以任何其他格式下載,即使被告知這樣做,故障仍未解決)。

似乎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 僅提供ttmlvtt文件(而且我可以下載兩種格式的字幕):

$ 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