youtube-dl is fast, lightweight, feature-rich and command-line-only video downloader.
Don’t be scary for the lack of a GUI, it’s very easy to use even for terminal n00bs!
Here’s why I like it:
- Extremely easy to use yet it’s a very complete software
- Soooo many supported websites
- It can download only the Audio or only the Video
- it mixes automatically different Video and Audio sources
- It can download an entire Playlist
- Or just certain Videos from a Playlist
- It downloads Subtitles
- Easy to install and keep updated
- Free and Open Source
You can install it from your distro’s Repository (Arch in my case):
# pacman -S youtube-dl
or with this easy command (if your distro doesn’t have it):
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl
if so you’ll have then to update it manually:
Here are some basic commands.
Show the video information:
youtube-dl -F https://youtu.be/Hs0MnhokuPM
youtube-dl -F Hs0MnhokuPM
At this point you’ll have different audio and video files, on the lest side are the format codes, I noticed that on Youtube they are always the same based on a specific format:
133 = 240p
134 = 360p
135 = 480p
136 = 720p@30fps
137 = 1080p@30fps
298 = 720p@60fps
299 = 1080p@60fps
140 is always the best m4a quality audio track
There may be also some Webm video and audio but mp4 and m4a should always be there.
To download a video (it will automatically download the best audio/video quality):
If you want a specific quality you can type:
youtube-dl -f 135+140 Hs0MnhokuPM
This will download a 480p video and the best m4a audio track. They’re then automatically mixed together as Mp4 by ffmpeg.
Webm audio and video will be mixed together as Webm, anything else will be mixed as Mkv.
You can easily download only the video or only the audio:
youtube-dl -f 140 Hs0MnhokuPM
The same option can be applied to a Playlist, first you can check some info
youtube-dl -F https://www.youtube.com/playlist?list=PLk8DskRHO_0ZREMFQJAzaMJac66AKPZp_
youtube-dl -F PLk8DskRHO_0ZREMFQJAzaMJac66AKPZp_
then download every single video with the same Audio/Video quality (if available):
youtube-dl -f 135+140 PLk8DskRHO_0ZREMFQJAzaMJac66AKPZp_
alternatively you can download just a video serie (ex. from video 2 to 5):
youtube-dl -f 135+140 --playlist-start 2 --playlist-end 5 PLk8DskRHO_0ZREMFQJAzaMJac66AKPZp_
or just some random video in a playlist (ex video 1, 3 and from 6 to 9)
youtube-dl -f 135+140 --playlist-items 1,3,6-9 PLk8DskRHO_0ZREMFQJAzaMJac66AKPZp_
Now let’s check the subtitles, to list the available subs:
youtube-dl --list-subs Hs0MnhokuPM
to download them without downloading any video or audio:
youtube-dl --all-subs --skip-download Hs0MnhokuPM
You can also rename a video:
youtube-dl Hs0MnhokuPM -o linux_gameplay
That’s it! There are many other options to suit all needs, try them out!