How to download Youtube playlists?

If you don't mind using the terminal, I'd highly recommend using yt-dlp. I know that the terminal looks scary but it couldn't be any easier:

yt-dlp <URL>

You can also specify which videos out of a playlist to download if you want. For example:

# download videos 1,3,5 & 6
yt-dlp <URL> -I 1,3,5,6

# download videos 1 to 20
yt-dlp <URL> -I 1:20

# download videos 1 to 20 but leaving out 5, 8 & 11
yt-dlp <URL> -I 1:4,6,7,9,10,12:20

When downloading large playlists, however, I would recommend adding these options to create an artificial delay for each download.

yt-dlp <URL> --sleep-requests 1.5 --min-sleep-interval 60 --max-sleep-interval 90

As you can imagine, YouTube doesn't like people not using their website. This will help triggering abuse detection systems at the slight inconvenience of having to wait a little longer to have the entire playlist downloaded.
If you think that's a big deal for you, keep in mind that by the time you are done watching the first video, the second one will most likely be already downloaded, and then the same with the third, and so on. So, please do the responsible thing and use these options to make the web a little better.

Keep in mind that downloading videos from YouTube is not illegal per se, but distributing copyrighted content is.

You can also use it to download single videos, extract only the audio, or the thumbnail, and many other options like specifying the video quality, etc. It works on many other sites, not just on YouTube.

I personally like to use it for things like background music, interviews, etc. where I don't really care about the video:

yt-dlp -f ba <URL>

To install it in Zorin OS, run the following commands:

sudo apt update
sudo apt install python3-pip
pip3 install yt-dlp

You might see a warning like this:

WARNING: The script yt-dlp is installed in '/home/zenzen/.local/bin' which is not on PATH.

You can quickly fix that by running:

echo "PATH=/home/zenzen/.local/bin:$PATH" >> ~/.bashrc

Close the terminal and launch it again, and you are ready to start running yt-dlp. Note, however, that this method will not automatically update yt-dlp. This is likely not going to be a problem, but it's good to run the installation command every now and then:

pip3 install yt-dlp
1 Like