youtube-dl <URL...>

Download videos from YouTube

Arguments

NameDescription
URL

Options

NameDescription
--help, -hPrint the help text and exit
--versionPrint program version and exit
-U, --updateUpdate this program to latest version. Make sure you have sufficient permissions (run with sudo if needed)
--ignore-errors, -iContinue on download errors, for example to skip unavailable videos in a playlist
--abort-on-errorAbort downloading of further videos (in the playlist or the command line) if an error occurs
--dump-user-agentDisplay the current browser identification
--list-extractorsList all supported extractors
--extractor-descriptionsOutput descriptions of all supported extractors
--default-search <PREFIX>Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for youtube-dl "large apple"
--config-location <PATH>Location of the configuration file; either the path to the config or its containing directory
--force-generic-extractorForce extraction to use the generic extractor
--ignore-configDo not read configuration files
--flat-playlistDo not extract the videos of a playlist, only list them
--mark-watchedMark videos watched (YouTube only)
--no-mark-watchedDo not mark videos watched (YouTube only)
--no-colorDo not emit color codes in output
--proxy <URL>Use the specified HTTP/HTTPS/SOCKS proxy. Pass in an empty string for direct connection
--socket-timeout <SECONDS>Time to wait before giving up, in seconds
--source-address <IP>Client-side IP address to bind to
-4, --force-ipv4Make all connections via IPv4
-6, --force-ipv6Make all connections via IPv6
--geo-verification-proxy <URL>Use this proxy to verify the IP address for some geo-restricted sites
--geo-bypassBypass geographic restriction via faking X-Forwarded-For HTTP header
--no-geo-bypassDo not bypass geographic restriction via faking X-Forwarded-For HTTP header
--geo-bypass-country <CODE>Force bypass geographic restriction with explicitly provided two-letter ISO 3166-2 county code
--geo-bypass-ip-block <IP_BLOCK>Force bypass geographic restriction with explicitly provided IP block in CIDR notation
--playlist-start <NUMBER>Playlist video to start at (default is 1)
--playlist-end <NUMBER>Playlist video to end at (default is last)
--playlist-items <ITEM_SPEC>Playlist video to end at (default is last)
--match-title <REGEX>Download only matching titles (regex or caseless sub-string)
--reject-title <REGEX>Skip download for matching titles (regex or caseless sub-string)
--max-downloads <NUMBER>Abort after downloading NUMBER files
--min-filesize <SIZE>Do not download any videos smaller than SIZE (e.g. 50k or 44.6)
--max-filesize <SIZE>Do not download any videos larger than SIZE (e.g. 50k or 44.6)
--date <DATE>Download only videos uploaded in this date
--datebefore <DATE>Download only videos uploaded on or before this date (i.e. inclusive)
--dateafter <DATE>Download only videos uploaded on or after this date (i.e. inclusive)
--min-views <COUNT>Do not download any videos with less than COUNT views
--max-views <COUNT>Do not download any videos with more than COUNT views
--match-filter <FILTER>Generic video filter
--no-playlistDownload only the video, if the URL refers to a video and a playlist
--yes-playlistDownload the playlist, if the URL refers to a video and a playlist
--age-limit <YEARS>Download only videos suitable for the given age
--download-archive <FILE>Download only videos not listed in the archive file. Record the IDs of all downloaded videos in it
--include-adsDownload advertisements as well (experimental)
-r, --limit-rate <RATE>Maximum download rate in bytes per second (e.g. 50K or 4.2M)
-R, --retries <RETRIES>Number of retries or "infinite"
--fragment-retries <RETRIES>Number of retries for a fragment or "infinite"
--skip-unavailable-fragmentsSkip unavailable fragments
--abort-on-unavailable-fragmentsAbort downloading when some fragment is not available
--keep-fragmentsKeep downloaded fragments on disk after downloading is finished; fragments are erased by default
--buffer-size <SIZE>Size of download buffer (e.g. 1024 or 16K)
--no-resize-bufferDo not automatically adjust the buffer size
--http-chunk-size <SIZE>Size of a chunk for chunk-based HTTP downloading (e.g. 10385760 or 10M)
--playlist-reverseDownload playlist videos in reverse order
--playlist-randomDownload playlist videos in random order
--xattr-set-filesizeSet file xattribute ytdl.filesize with expected file size
--hls-prefer-nativeUse the native HLS downloader instead of ffmpeg
--hls-prefer-ffmpegUse ffmpeg instead of the native HLS downloader
--hls-prefer-mpegtsUse the mpegts container for HLS videos, allowing to play the video while downloading
--external-downloader <COMMAND>Use the specified external downloader
--external-downloader-args <ARGS>Give these arguments to the external downloader
-a, --batch-file <FILE>File containing URLs to download ('-' for stdin), one URL per line. Lines starting with '#', ';' or ']' are considered as comments and ignored
--idUse only video ID in file name
-o, --output <TEMPLATE>Output filename template
--output-na-placeholder <PLACEHOLDER>Placeholder value for unavailable meta fields in output filename template
--autonumber-start <NUMBER>Specify the start value for %(autonumber)s
--restrict-filenamesRestrict filenames to only ASCII characters, and avoid "&" and spaces in filenames
-w, --no-overwritesDo not overwrite files
-c, --continueDo not resume partially downloaded files (restart from beginning)
--no-partDo not use .part files - write directly into output file
--no-mtimeDo not use the Last-modified header to set the file modification time
--write-descriptionWrite video descriptions to a .description file
--write-info-jsonWrite video metadata to a .info.json file
--write-annotationsWrite video annotations to a .annotations.xml file
--load-info-json <FILE>JSON file containing the video information (created with the "--write-info-json" option
--cookies <FILE>File to read cookies from and dump cookie jar in
--cache-dir <DIR>Location in the filesystem where youtube-dl can store some downloaded information permanently
--no-cache-dirDisable filesystem caching
--rm-cache-dirDelete all filesystem cache files
--write-thumbnailWrite thumbnail image to disk
--write-all-thumbnailWrite all thumbnail image formats to disk
--list-thumbnailsSimulate and list all available thumbnail formats
-q, --quietActivate quite mode
--no-warningsIgnore warnings
-s, --simulateDo not download the video and do note write anything to disk
--skip-downloadDo not download the video
-g, --get-urlSimulate, quiet but print URL
-e, --get-titleSimulate, quiet but print title
--get-idSimulate, quiet but print id
--get-thumbnailSimulate, quiet but print thumbnail URL
--get-descriptionSimulate, quiet but print video description
--get-durationSimulate, quiet but print video length
--get-filenameSimulate, quiet but print output filename
--get-formatSimulate, quiet but print output format
-j, --dump-jsonSimulate, quiet but JSON information
-J, --dump-single-jsonSimulate, quiet but JSON information for each command-line argument
--print-jsonBe quiet and print the video information as JSON (video is still being downloaded)
--newlineOutput the progress bar as new lines
--no-progressDo not print the progress bar
--console-titleDisplay progress in console titlebar
-v, --verbosePrint various debugging information
--dump-pagesPrint downloaded pages encoded using base64 to debug problems (very verbose)
--write-pagesWrite downloaded intermediary pages to files in the current directory to debug problems
--print-trafficDisplay sent and read HTTP traffic
-C, --call-homeContact the youtube-dl server for debugging
--no-call-homeDo NOT contact the youtube-dl server for debugging
--encoding <ENCODING>Force the specified encoding (experimental)
--no-check-certificateSuppress HTTPS certificate validation
--prefer-insecureUse an unencrypted connection to retrieve information about the video. (Currently supported only for YouTube)
--user-agent <UA>Specify a custom user agent
--referer <URL>Specify a custom referer, use if the video access is restricted to one domain
--add-header <FIELD:VALUE>
  • Repeatable ♾
--bidi-workaroundWork around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH
--sleep-interval <SECONDS>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
--max-sleep-interval <SECONDS>Upper bound of a range for randomized sleep before each download. Must only be used along with --min- sleep-interval
-f, --format <FORMAT>Video format code
--all-formatsDownload all available video formats
--prefer-free-formatsPrefer free video formats unless a specific one is requested
-F, --list-formatsList all available formats of requested videos
--youtube-skip-dash-manifestDo not download the DASH manifests and related data on YouTube videos
--merge-output-format <FORMAT>If a merge is required (e.g. bestvideo+bestaudio), output to given container format
--write-subWrite subtitle file
--write-auto-subWrite automatically generated subtitle file (YouTube only)
--all-subsDownload all the available subtitles of the video
--list-subsList all available subtitles for the video
--sub-format <FORMAT>Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"
--sub-lang <LANGS>Languages of the subtitles to download (optional) separated by commas
-u, --username <USERNAME>Login with this account ID
-p, --password <PASSWORD>Account password. If this option is left out, youtube-dl will ask interactively
-2, --twofactor <TWOFACTOR>Two-factor authentication code
-n, --netrcUse .netrc authentication data
--video-password <PASSWORD>Video password (vimeo, youku)
--ap-mso <MSO>Adobe Pass multiple-system operator (TV provider) identifier
--ap-username <USERNAME>Multiple-system operator account login
--ap-password <PASSWORD>Multiple-system operator account password. If this option is left out, youtube-dl will ask interactively
--ap-list-msoList all supported multiple-system operators
-x, --extract-audioConvert audio files to audio-only files (requires ffmpeg/avconv and ffprobe/avprobe)
--audio-format <FORMAT>Specify audio format
--audio-quality <QUALITY>Specify ffmpeg/avconv audio quality, insert a value between 0 (better) and 9 (worse) for VBR or a specific bitrate like 128K
--recode-video <FORMAT>Encode the video to another format if necessary
--postprocessor-args <ARGS>Give these arguments to the postprocessor
-k, --keep-videoKeep the video file on disk after the post-processing; the video is erased by default
--no-post-overwritesDo not overwrite post-processed files; the post-processed files are overwritten by default
--embed-subsEmbed subtitles in the video (only for mp4, webm and mkv videos)
--embed-thumbnailEmbed thumbnail in the audio as cover art
--embed-metadataWrite metadata to the video file
--metadata-from-title <FORMAT>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
--xattrsWrite metadata to the video file's xattrs (using dublin core and xdg standards)
--fixup <POLICY>Automatically correct known faults of the file
--prefer-avconvPrefer avconv over ffmpeg for running the postprocessors
--prefer-ffmpegPrefer ffmpeg over avconv for running the postprocessors (default)
--ffmpeg-location <PATH>Location of the ffmpeg/avconv binary; either the path to the binary or its containing directory
--exec <CMD>Execute a command on the file after downloading and post-processing, similar to find's -exec syntax
--convert-subs <FORMAT>Convert the subtitles to other format