All apps/youtube-dl

youtube-dl

youtube-dl

A command-line program to download videos from YouTube.com and a few more sites.

Runs as youtube-dl|macOS, Linux, Windows|ytdl-org.github.io

Autocomplete

Fig spec, with what the manifest adds · 155 options
Published once and never changed; check the digest before caching
sha256
83fe376837ee9816ab0ef56698b0694fa4b3b7188b61afbbda5497f1a0a91922
Size
31083 bytes
OptionsOn youtube-dl itself
--help-h
Print the help text and exit
--version
Print program version and exit
-U--update
Update this program to latest version. Make sure you have sufficient permissions (run with sudo if needed)
--ignore-errors-i
Continue on download errors, for example to skip unavailable videos in a playlist
--abort-on-error
Abort downloading of further videos (in the playlist or the command line) if an error occurs
--dump-user-agent
Display the current browser identification
--list-extractors
List all supported extractors
--extractor-descriptions
Output descriptions of all supported extractors
--default-search
Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple" <PREFIX>
--config-location
Location of the configuration file; either the path to the config or its containing directory <PATH>
--force-generic-extractor
Force extraction to use the generic extractor
--ignore-config
Do not read configuration files
--flat-playlist
Do not extract the videos of a playlist, only list them
--mark-watched
Mark videos watched (YouTube only)
--no-mark-watched
Do not mark videos watched (YouTube only)
--no-color
Do not emit color codes in output
--proxy
Use the specified HTTP/HTTPS/SOCKS proxy. Pass in an empty string for direct connection <URL>
--socket-timeout
Time to wait before giving up, in seconds <SECONDS>
--source-address
Client-side IP address to bind to <IP>
-4--force-ipv4
Make all connections via IPv4
-6--force-ipv6
Make all connections via IPv6
--geo-verification-proxy
Use this proxy to verify the IP address for some geo-restricted sites <URL>
--geo-bypass
Bypass geographic restriction via faking X-Forwarded-For HTTP header
--no-geo-bypass
Do not bypass geographic restriction via faking X-Forwarded-For HTTP header
--geo-bypass-country
Force bypass geographic restriction with explicitly provided two-letter ISO 3166-2 county code <CODE>
--geo-bypass-ip-block
Force bypass geographic restriction with explicitly provided IP block in CIDR notation <IP_BLOCK>
--playlist-start
Playlist video to start at (default is 1) <NUMBER>
--playlist-end
Playlist video to end at (default is last) <NUMBER>
--playlist-items
Playlist video to end at (default is last) <ITEM_SPEC>
--match-title
Download only matching titles (regex or caseless sub-string) <REGEX>
--reject-title
Skip download for matching titles (regex or caseless sub-string) <REGEX>
--max-downloads
Abort after downloading NUMBER files <NUMBER>
--min-filesize
Do not download any videos smaller than SIZE (e.g. 50k or 44.6) <SIZE>
--max-filesize
Do not download any videos larger than SIZE (e.g. 50k or 44.6) <SIZE>
--date
Download only videos uploaded in this date <DATE>
--datebefore
Download only videos uploaded on or before this date (i.e. inclusive) <DATE>
--dateafter
Download only videos uploaded on or after this date (i.e. inclusive) <DATE>
--min-views
Do not download any videos with less than COUNT views <COUNT>
--max-views
Do not download any videos with more than COUNT views <COUNT>
--match-filter
Generic video filter <FILTER>
--no-playlist
Download only the video, if the URL refers to a video and a playlist
--yes-playlist
Download the playlist, if the URL refers to a video and a playlist
--age-limit
Download only videos suitable for the given age <YEARS>
--download-archive
Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it <FILE>
--include-ads
Download advertisements as well (experimental)
-r--limit-rate
Maximum download rate in bytes per second (e.g. 50K or 4.2M) <RATE>
-R--retries
Number of retries or "infinite" <RETRIES>
--fragment-retries
Number of retries for a fragment or "infinite" <RETRIES>
--skip-unavailable-fragments
Skip unavailable fragments
--abort-on-unavailable-fragments
Abort downloading when some fragment is not available
--keep-fragments
Keep downloaded fragments on disk after downloading is finished; fragments are erased by default
--buffer-size
Size of download buffer (e.g. 1024 or 16K) <SIZE>
--no-resize-buffer
Do not automatically adjust the buffer size
--http-chunk-size
Size of a chunk for chunk-based HTTP downloading (e.g. 10385760 or 10M) <SIZE>
--playlist-reverse
Download playlist videos in reverse order
--playlist-random
Download playlist videos in random order
--xattr-set-filesize
Set file xattribute ytdl.filesize with expected file size
--hls-prefer-native
Use the native HLS downloader instead of ffmpeg
--hls-prefer-ffmpeg
Use ffmpeg instead of the native HLS downloader
--hls-prefer-mpegts
Use the mpegts container for HLS videos, allowing to play the video while downloading
--external-downloader
Use the specified external downloader <COMMAND>
--external-downloader-args
Give these arguments to the external downloader <ARGS>
-a--batch-file
File containing URLs to download ('-' for stdin), one URL per line. Lines starting with '#', ';' or ']' are considered as comments and ignored <FILE>
--id
Use only video ID in file name
-o--output
Output filename template <TEMPLATE>
--output-na-placeholder
Placeholder value for unavailable meta fields in output filename template <PLACEHOLDER>
--autonumber-start
Specify the start value for %(autonumber)s <NUMBER>
--restrict-filenames
Restrict filenames to only ASCII characters, and avoid "&" and spaces in filenames
-w--no-overwrites
Do not overwrite files
-c--continue
Do not resume partially downloaded files (restart from beginning)
--no-part
Do not use .part files - write directly into output file
--no-mtime
Do not use the Last-modified header to set the file modification time
--write-description
Write video descriptions to a .description file
--write-info-json
Write video metadata to a .info.json file
--write-annotations
Write video annotations to a .annotations.xml file
--load-info-json
JSON file containing the video information (created with the "--write-info-json" option <FILE>
--cookies
File to read cookies from and dump cookie jar in <FILE>
--cache-dir
Location in the filesystem where youtube-dl can store some downloaded information permanently <DIR>
--no-cache-dir
Disable filesystem caching
--rm-cache-dir
Delete all filesystem cache files
--write-thumbnail
Write thumbnail image to disk
--write-all-thumbnail
Write all thumbnail image formats to disk
--list-thumbnails
Simulate and list all available thumbnail formats
-q--quiet
Activate quite mode
--no-warnings
Ignore warnings
-s--simulate
Do not download the video and do note write anything to disk
--skip-download
Do not download the video
-g--get-url
Simulate, quiet but print URL
-e--get-title
Simulate, quiet but print title
--get-id
Simulate, quiet but print id
--get-thumbnail
Simulate, quiet but print thumbnail URL
--get-description
Simulate, quiet but print video description
--get-duration
Simulate, quiet but print video length
--get-filename
Simulate, quiet but print output filename
--get-format
Simulate, quiet but print output format
-j--dump-json
Simulate, quiet but JSON information
-J--dump-single-json
Simulate, quiet but JSON information for each command-line argument
--print-json
Be quiet and print the video information as JSON (video is still being downloaded)
--newline
Output the progress bar as new lines
--no-progress
Do not print the progress bar
--console-title
Display progress in console titlebar
-v--verbose
Print various debugging information
--dump-pages
Print downloaded pages encoded using base64 to debug problems (very verbose)
--write-pages
Write downloaded intermediary pages to files in the current directory to debug problems
--print-traffic
Display sent and read HTTP traffic
-C--call-home
Contact the youtube-dl server for debugging
--no-call-home
Do NOT contact the youtube-dl server for debugging
--encoding
Force the specified encoding (experimental) <ENCODING>
--no-check-certificate
Suppress HTTPS certificate validation
--prefer-insecure
Use an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube)
--user-agent
Specify a custom user agent <UA>
--referer
Specify a custom referer, use if the video access is restricted to one domain <URL>
--add-header
Specify a custom HTTP header and its value, separated by a colon ':' <FIELD:VALUE>
--bidi-workaround
Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH
--sleep-interval
Number of seconds to sleep before each download when used alone or a lower bound of a range for randomized sleep before each download when used along with --max-sleep-interval <SECONDS>
--max-sleep-interval
Upper bound of a range for randomized sleep before each download. Must only be used along with --min- sleep-interval <SECONDS>
-f--format
Video format code <FORMAT>
--all-formats
Download all available video formats
--prefer-free-formats
Prefer free video formats unless a specific one is requested
-F--list-formats
List all available formats of requested videos
--youtube-skip-dash-manifest
Do not download the DASH manifests and related data on YouTube videos
--merge-output-format
If a merge is required (e.g. bestvideo+bestaudio), output to given container format <FORMAT>
--write-sub
Write subtitle file
--write-auto-sub
Write automatically generated subtitle file (YouTube only)
--all-subs
Download all the available subtitles of the video
--list-subs
List all available subtitles for the video
--sub-format
Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best" <FORMAT>
--sub-lang
Languages of the subtitles to download (optional) separated by commas <LANGS>
-u--username
Login with this account ID <USERNAME>
-p--password
Account password. If this option is left out, youtube-dl will ask interactively <PASSWORD>
-2--twofactor
Two-factor authentication code <TWOFACTOR>
-n--netrc
Use .netrc authentication data
--video-password
Video password (vimeo, youku) <PASSWORD>
--ap-mso
Adobe Pass multiple-system operator (TV provider) identifier <MSO>
--ap-username
Multiple-system operator account login <USERNAME>
--ap-password
Multiple-system operator account password. If this option is left out, youtube-dl will ask interactively <PASSWORD>
--ap-list-mso
List all supported multiple-system operators
-x--extract-audio
Convert audio files to audio-only files (requires ffmpeg/avconv and ffprobe/avprobe)
--audio-format
Specify audio format <FORMAT>
--audio-quality
Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K <QUALITY>
--recode-video
Encode the video to another format if necessary <FORMAT>
--postprocessor-args
Give these arguments to the postprocessor <ARGS>
-k--keep-video
Keep the video file on disk after the post-processing; the video is erased by default
--no-post-overwrites
Do not overwrite post-processed files; the post-processed files are overwritten by default
--embed-subs
Embed subtitles in the video (only for mp4, webm and mkv videos)
--embed-thumbnail
Embed thumbnail in the audio as cover art
--embed-metadata
Write metadata to the video file
--metadata-from-title
Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output. Regular expressions with named capture groups may also be used. The parsed parameters replace existing values <FORMAT>
--xattrs
Write metadata to the video file's xattrs (using dublin core and xdg standards)
--fixup
Automatically correct known faults of the file <POLICY>
--prefer-avconv
Prefer avconv over ffmpeg for running the postprocessors
--prefer-ffmpeg
Prefer ffmpeg over avconv for running the postprocessors (default)
--ffmpeg-location
Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory <PATH>
--exec
Execute a command on the file after downloading and post-processing, similar to find's -exec syntax <CMD>
--convert-subs
Convert the subtitles to other format <FORMAT>
ArgumentsPositional, in order
<URL>
· repeatable