How to youtube-dl
INSTALLATION To install it right away for all UNIX users (Linux, macOS, etc.), type: 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 you do not have curl, you can as an option use a recent wget: sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl Windows users can download an .exe file

INSTALLATION
To install it right away for all UNIX
users (Linux
, macOS
, etc.), type:
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 you do not have curl, you can as an option use a recent wget
:
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl sudo chmod a+rx /usr/local/bin/youtube-dl
Windows users can download an .exe file and place it in any location on their PATH except for %SYSTEMROOT\%System32
(e.g. do not put in C:\Windows\System32
).
You can also use pip
:
sudo -H pip install --upgrade youtube-dl
This command will update youtube-dl if you have already installed it. See the pypi page for more information.
sudo port install youtube-dl
Alternatively, refer to the developer instructions for how to check out and work with the git repository. For further options, including PGP signatures, see the youtube-dl Download Page.
CONFIGURATION
You can configure youtube-dl by placing any supported command line option to a configuration file. On Linux and macOS, the system wide configuration file is located at /etc/youtube-dl.conf
and the user wide configuration file at ~/.config/youtube-dl/config
. On Windows, the user wide configuration file locations are %APPDATA%\youtube-dlconfig.txt
or C:\Users\<user name>\youtube-dl.conf
. Note that by default configuration file may not exist so you may need to create it yourself.
For example, with the following configuration file youtube-dl
will always extract the audio, not copy the mtime
, use a proxy and save all videos under Movies
directory in your home directory:
# Lines starting with # are comments # Always extract audio -x # Do not copy the mtime --no-mtime # Use this proxy --proxy 127.0.0.1:3128 # Save all videos under Movies directory in your home directory -o ~/Movies/%(title)s.%(ext)s
Note that options in configuration file are just the same options aka switches used in regular command line calls thus there must be no whitespace after -
or --
, e.g. -o
or --proxy
but not - o
or -- proxy
.
You can use --ignore-config
if you want to disable the configuration file for a particular youtube-dl
run.
You can also use --config-location
if you want to use custom configuration file for a particular youtube-dl
run.
Authentication with .netrc
file
You may also want to configure automatic credentials storage for extractors that support authentication (by providing login and password with --username
and --password
) in order not to pass credentials as command line arguments on every youtube-dl execution and prevent tracking plain text passwords in the shell command history. You can achieve this using a .netrc
file on a per extractor basis. For that you will need to create a .netrc
file in your $HOME
and restrict permissions to read/write by only you:
touch $HOME/.netrc chmod a-rwx,u+rw $HOME/.netrc
After that you can add credentials for an extractor in the following format, where extractor is the name of the extractor in lowercase:
machine <extractor> login <login> password <password>
For example:
machine youtube login myaccount@gmail.com password my_youtube_password
machine twitch login my_twitch_account_name password my_twitch_password
To activate authentication with the .netrc
file you should pass --netrc
to youtube-dl
or place it in the configuration file.
On Windows you may also need to setup the %HOME%
environment variable manually. For example:
set HOME=%USERPROFILE%
Output template examples
Note that on Windows you may need to use double quotes instead of single.
$ youtube-dl --get-filename -o '%(title)s.%(ext)s' BaW_jenozKc youtube-dl test video ''_ä�.mp4 # All kinds of weird characters $ youtube-dl --get-filename -o '%(title)s.%(ext)s' BaW_jenozKc --restrict-filenames youtube-dl_test_video_.mp4 # A simple file name # Download YouTube playlist videos in separate directory indexed by video order in a playlist $ youtube-dl -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' # Download all playlists of YouTube channel/user keeping each playlist in separate directory: $ youtube-dl -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' https://www.youtube.com/user/TheLinuxFoundation/playlists # Download Udemy course keeping each chapter in separate directory under MyVideos directory in your home $ youtube-dl -u user -p password -o '~/MyVideos/%(playlist)s/%(chapter_number)s - %(chapter)s/%(title)s.%(ext)s' # Download entire series season keeping each series and each season in separate directory under C:/MyVideos $ youtube-dl -o "C:/MyVideos/%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s" https://videomore.ru/kino_v_detalayah/5_sezon/367617 # Stream the video being downloaded to stdout $ youtube-dl -o - BaW_jenozKc
# Download best mp4 format available or any other best if no mp4 available
$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'
# Download best format available but no better than 480p
$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
# Download best video only format but no bigger than 50 MB
$ youtube-dl -f 'best[filesize<50M]'
# Download best format available via direct link over HTTP/HTTPS protocol
$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'
# Download the best video format and the best audio format without merging them
$ youtube-dl -f 'bestvideo,bestaudio' -o '%(title)s.f%(format_id)s.%(ext)s'
To unistall you’ve followed our manual installation instructions, you can simply run youtube-dl -U
(or, on Linux, sudo youtube-dl -U
).
If you have used pip, a simple sudo pip install -U youtube-dl
is sufficient to update.
First, you can also uninstall the version installed by your package manager and follow our manual installation instructions. For that, remove the distribution’s package, with a line like
sudo apt-get remove -y youtube-dl
Afterwards, simply follow our manual installation instructions:
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
hash -r
Source ~ https://github.com/ytdl-org/youtube-dl/blob/master/README.md
Finally scripts
For audio
youtube-dl --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 360K --restrict-filenames --embed-thumbnail --add-metadata --output "%(title)s.%(ext)s" $1
For video
youtube-dl --ignore-errors --format bestaudio --extract-audio --audio-format mp3 --audio-quality 360K --restrict-filenames --embed-thumbnail --add-metadata --output "%(title)s.%(ext)s" $1