Download an entire YouTube channel with youtube-dl and automatically resume if interrupted

youtube-dl

I'm downloading an entire YouTube channel consisting of about 10,000 videos. Sometimes the download stops due to errors like "content too short" or "connection interrupted". However, is there a way to automatically restart the download? There is probably a batch file you can make, but I don't know how to make one.

This is the command I use to download:

youtube-dl -f bestvideo+bestaudio ytuser:(Channel) -o "/Videos/lhs/[%(upload_date)s - %(id)s] %(title)s.%(ext)s" --ffmpeg-location %CD%\ffmpeg\bin

Best Answer

This answer won't work on older versions of youtube-dl. You need to update youtube-dl to the latest version. If you have Python installed on your system, you can install the latest version of youtube-dl locally inside a Python virtual environment, or you can download the latest version of youtube-dl and install it globally.

In Ubuntu 14.04 and later youtube-dl is also a snap package. To install it type:

sudo snap install youtube-dl # start with snap run youtube-dl 

Open the terminal and type:

youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

...where <url-of-channel> is replaced by the URL of the channel.

Note: If you are downloading a lot of videos, you should change directories to the directory where you want to save the videos before you start downloading them.

Explanation

-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
Related Question