Skip to content

Instantly share code, notes, and snippets.

@CornerSyrup
Created August 20, 2023 14:34
Show Gist options
  • Select an option

  • Save CornerSyrup/b11e5725cafc83496ee1c0750d60c6b0 to your computer and use it in GitHub Desktop.

Select an option

Save CornerSyrup/b11e5725cafc83496ee1c0750d60c6b0 to your computer and use it in GitHub Desktop.
common options for youtube-dl

youtube-dl

youtube-dl.exe -o "%(channel_id)s/%(title)s.%(ext)s" --external-downloader aria2c -f bestvideo[ext=mp4],bestaudio[ext=m4a] --add-metadata --xattrs --write-thumbnail --embed-thumbnail https://www.youtube.com/watch?v=dQw4w9WgXcQ

List video format

Flag: -F, --list-formats

example

$> youtube-dl -F https://www.youtube.com/watch?v=dQw4w9WgXcQ

# output:
# format code  extension  resolution note
# 249          webm       audio only tiny   46k , webm_dash container, opus @ 46k (48000Hz), 1.18MiB
# 250          webm       audio only tiny   61k , webm_dash container, opus @ 61k (48000Hz), 1.55MiB
# ...

Specifying video fomat

Official docs

Flag: -f, --format

Value: best, bestvideo, bestaudio, worst, worstvideo, worstaudio, format value

download 1 format

$> youtube-dl -f 251 https://www.youtube.com/watch?v=dQw4w9WgXcQ

download multiple format

$> youtube-dl -f 251,137 https://www.youtube.com/watch?v=dQw4w9WgXcQ

using with keyword

$> youtube-dl -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ

Using external downloader

$> youtube-dl --external-downloader aria2c -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ

Specifying output file name

Official docs

Flag: -o

Value: see official docs

default format

$> youtube-dl -o "%(title)s-%(id)s.%(ext)s" -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ

output to sub-directory named with uploader

$> youtube-dl -o "%(uploader)s\%(title)s-%(id)s.%(ext)s" -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ

Downloading contents with credential

some videos require membership or any other thing similar, like member only video on YouTube. This require cookie that holds your login state. Cookie.txt is a text file that stores your cookie. It's simple format plain text file, but hard to determin which cookie(s) holds your login state. Official docs recommand to use browser extension to extract cookies into a Netscape cookie jar file.

Chrome extension Firefox extension

Flag: --cookies Value: path to cookie.txt file

$> youtube-dl -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ --cookies ./cookies.txt

Add meta data to video file

Flag: --add-metadata

$> youtube-dl -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ --add-metadata

Add meta data to video file's xattr

Flag: --xattrs

$> youtube-dl -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ --xattrs

Add cover art to audio

Flag: --embed-thumbnail

$> youtube-dl -f bestaudio https://www.youtube.com/watch?v=dQw4w9WgXcQ --embed-thumbnail

Download video thumbnail

Flag: --write-thumbnail

$> youtube-dl -f best https://www.youtube.com/watch?v=dQw4w9WgXcQ --write-thumbnail
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment