我正在下載包含大約 10,000 個影片的整個 YouTube 頻道。有時,下載會因「內容太短」或「連線中斷」等錯誤而停止。但是,有沒有辦法自動重新開始下載呢?您可能可以製作一個批次文件,但我不知道如何製作。
這是我用來下載的指令:
youtube-dl -f bestvideo+bestaudio ytuser:(Channel) -o "/Videos/lhs/[%(upload_date)s - %(id)s] %(title)s.%(ext)s" --ffmpeg-location %CD%\ffmpeg\bin
答案1
此答案不適用於舊版的 youtube-dl。您需要將 youtube-dl 更新到最新版本。如果您的系統上安裝了 Python,則可以在 Python 虛擬環境中本機安裝最新版本的 youtube-dl,也可以下載最新版本的 youtube-dl 並在全域安裝。
在 Ubuntu 14.04 及更高版本中,youtube-dl 也是一個 snap 套件。要安裝它,請輸入:
sudo snap 安裝 youtube-dl# 使用 snap run youtube-dl 啟動它
打開終端機並輸入:
youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
...其中<url-of-channel>
替換為頻道的 URL。
筆記:如果您要下載大量視頻,則應在開始下載之前將目錄更改為要保存視頻的目錄。
解釋
-f, --format FORMAT
video format code. The special name "best" will pick the best quality.
-c, --continue
force resume of partially downloaded files
-i, --ignore-errors
continue on download errors, for example to skip unavailable videos in a channel
-w, --no-overwrites
do not overwrite files
-v, --verbose
print various debugging information
答案2
答案3
也許這個論點在提出問題時並不存在,但使用
--ignore-errors
將導致 youtube-dl 繼續下載,無論出現任何錯誤。請謹慎使用,因為如果您錯過了重要錯誤,這樣的包羅萬象的解決方案可能會導致問題,儘管對於包含 10k 視頻的頻道,您可能不介意其中少數視頻無法正確下載。
此外,使用
--download-archive archive.log
將追蹤已下載的內容並跳過您已經下載的視頻,因此如果腳本由於電源故障等原因停止,當您再次運行它時,它不會嘗試從頭開始重新下載所有內容。
答案4
一個有用的腳本:youtube_channel_archiver