Troubleshooting
youtube-dl,如何將 youtube 播放列表的所有子項寫入一個文件?
我在 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 僅提供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