youtube-dl
youtube-dl is a command-line program that lets you easily download videos and audio from more than a thousand websites. See the list of supported sites.
Installation
Install the youtube-dl package, or youtube-dl-gitAUR for the development version. It is recommended to also install FFmpeg as it is used for muxing for some sites. See the optional dependencies.
Various forks of youtube-dl also exist and may contain additional features, in particular yt-dlp adds support for more sites, downloading comments, improvements to format preferences, and other changes. youtube-dlcAUR is another fork with many of the aforementioned new features. There are also various graphical frontends to youtube-dl and/or its forks, such as tartubeAUR and yt-dlg (youtube-dl-gui-gitAUR).
Configuration
The system-wide configuration file is /etc/youtube-dl.conf
and the user-specific configuration file is ~/.config/youtube-dl/config
. The syntax is simply one command-line option per line. Example configuration:
--ignore-errors # --no-playlist # Save in ~/Videos -o ~/Videos/%(title)s.%(ext)s # Prefer 1080p or lower resolutions -f bestvideo[ext=mp4][width<2000][height<=1200]+bestaudio[ext=m4a]/bestvideo[ext=webm][width<2000][height<=1200]+bestaudio[ext=webm]/bestvideo[width<2000][height<=1200]+bestaudio/best[width<2000][height<=1200]/best
See [1] for more information.
Usage
See youtube-dl(1) for the manual.
$ youtube-dl [OPTIONS] URL
URL
can be substituted with the video ID.Format selection
When multiple formats of a video are available, youtube-dl will download the best ones by default.
To select a specific one to download:
$ youtube-dl -f format URL
To get a list of the available formats:
$ youtube-dl -F URL
Extract audio
Use -x
for audio-only downloads (requires FFmpeg):
$ youtube-dl -x -f bestaudio URL
Depending on the available source streams, this will often correct the audio-only container. If an audio-only stream is not available, exclude -f bestaudio
from the example above. This will download the video and copy its audio as post process. By default this will remove the downloaded video, include -k
to keep it.
To also include album art (requires atomicparsley):
$ youtube-dl -x -f bestaudio[ext=m4a] --add-metadata --embed-thumbnail URL
Subtitles
To see which languages are available:
$ youtube-dl --list-subs URL
To download a video with selected subtitles (comma separated):
$ youtube-dl --write-sub --sub-lang LANG URL
For auto-generated subtitles:
$ youtube-dl --write-auto-sub --sub-lang LANG URL
Add --skip-download
to get only subtitles.
Tips and tricks
Faster downloads
Some websites throttle transfer speeds. You can often get around this by choosing non DASH streams or by using aria2, an external downloader which supports multi-connection downloads. For example:
$ youtube-dl --external-downloader aria2c --external-downloader-args '-c -j 3 -x 3 -s 3 -k 1M' URL
Playlist
Using youtube-dl for a playlist usually boils down to the following options:
$ youtube-dl --ignore-errors --continue --no-overwrites --download-archive progress.txt usual options URL
This set of options allow for the download to effectively continue even after interruption. If you are archiving, add the usual --write-xxx
and --embed-xxx
options you may have.
Trim (partial download)
Parts of videos can be downloaded by using the output of youtube-dl -g -f format URL
as ffmpeg input with the -ss
(for input), -t
and -c copy
options.
URL from clipboard
A shell alias, a desktop launcher or a keyboard shortcut can be set to download a video (or audio) of a selected (or copied) URL by outputting it from the X selection. See Clipboard#Tools.
See also
- GitHub repository for documentation.