使用 youtube-dl 下載整個 YouTube 頻道並在中斷時自動恢復

使用 youtube-dl 下載整個 YouTube 頻道並在中斷時自動恢復

我正在下載包含大約 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

如果您查看 youtube-dl 手冊頁,您將看到恢復部分下載的選項。

-c, --continue
           Resume partially downloaded files.

手冊頁關聯

答案3

也許這個論點在提出問題時並不存在,但使用

--ignore-errors

將導致 youtube-dl 繼續下載,無論出現任何錯誤。請謹慎使用,因為如果您錯過了重要錯誤,這樣的包羅萬象的解決方案可能會導致問題,儘管對於包含 10k 視頻的頻道,您可能不介意其中少數視頻無法正確下載。

此外,使用

--download-archive archive.log

將追蹤已下載的內容並跳過您已經下載的視頻,因此如果腳本由於電源故障等原因停止,當您再次運行它時,它不會嘗試從頭開始重新下載所有內容。

答案4

一個有用的腳本:youtube_channel_archiver

相關內容