@ -326,9 +326,9 @@ You can also fork the project on github and run your fork's [build workflow](.gi
-i, --ignore-errors Ignore download and postprocessing errors.
-i, --ignore-errors Ignore download and postprocessing errors.
The download will be considered successful
The download will be considered successful
even if the postprocessing fails
even if the postprocessing fails
--no-abort-on-error Continue with next video on download
--no-abort-on-error Continue with next video on download errors;
errors; e.g. to skip unavailable videos in
e.g. to skip unavailable videos in a
a playlist (default)
playlist (default)
--abort-on-error Abort downloading of further videos if an
--abort-on-error Abort downloading of further videos if an
error occurs (Alias: --no-ignore-errors)
error occurs (Alias: --no-ignore-errors)
--dump-user-agent Display the current user-agent and exit
--dump-user-agent Display the current user-agent and exit
@ -337,15 +337,15 @@ You can also fork the project on github and run your fork's [build workflow](.gi
extractors and exit
extractors and exit
--force-generic-extractor Force extraction to use the generic
--force-generic-extractor Force extraction to use the generic
extractor
extractor
--default-search PREFIX Use this prefix for unqualified URLs. For
--default-search PREFIX Use this prefix for unqualified URLs. Eg:
example "gvsearch2:" downloads two videos
"gvsearch2:python " downloads two videos from
from google videos for the search term
google videos for the search term "python".
"large apple". Use the value "auto" to let
Use the value "auto" to let yt-dlp guess
yt-dlp guess ("auto_warning" to emit a
("auto_warning" to emit a warning when
warning when guessing). "error" just throws
guessing). "error" just throws an error. The
an error. The default value "fixup_error"
default value "fixup_error" repairs broken
repairs broken URLs, but emits an error if
URLs, but emits an error if this is not
this is not possible instead of searching
possible instead of searching
--ignore-config Don't load any more configuration files
--ignore-config Don't load any more configuration files
except those given by --config-locations.
except those given by --config-locations.
For backward compatibility, if this option
For backward compatibility, if this option
@ -353,10 +353,9 @@ You can also fork the project on github and run your fork's [build workflow](.gi
file, the user configuration is not loaded.
file, the user configuration is not loaded.
(Alias: --no-config)
(Alias: --no-config)
--no-config-locations Do not load any custom configuration files
--no-config-locations Do not load any custom configuration files
(default). When given inside a
(default). When given inside a configuration
configuration file, ignore all previous
file, ignore all previous --config-locations
--config-locations defined in the current
defined in the current file
file
--config-locations PATH Location of the main configuration file;
--config-locations PATH Location of the main configuration file;
either the path to the config or its
either the path to the config or its
containing directory. Can be used multiple
containing directory. Can be used multiple
@ -390,20 +389,19 @@ You can also fork the project on github and run your fork's [build workflow](.gi
creates options "--get-audio" and "-X" that
creates options "--get-audio" and "-X" that
takes an argument (ARG0) and expands to
takes an argument (ARG0) and expands to
"-S=aext:ARG0,abr -x --audio-format ARG0".
"-S=aext:ARG0,abr -x --audio-format ARG0".
All defined aliases are listed in the
All defined aliases are listed in the --help
--help output. Alias options can trigger
output. Alias options can trigger more
more aliases; so be carefull to avoid
aliases; so be carefull to avoid defining
defining recursive options. As a safety
recursive options. As a safety measure, each
measure, each alias may be triggered a
alias may be triggered a maximum of 100
maximum of 100 times. This option can be
times. This option can be used multiple
used multiple times
times
## Network Options:
## Network Options:
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy.
--proxy URL Use the specified HTTP/HTTPS/SOCKS proxy. To
To enable SOCKS proxy, specify a proper
enable SOCKS proxy, specify a proper scheme.
scheme. For example
Eg: socks5://user:pass@127.0.0.1:1080/. Pass
socks5://user:pass@127.0.0.1:1080/. Pass in
in an empty string (--proxy "") for direct
an empty string (--proxy "") for direct
connection
connection
--socket-timeout SECONDS Time to wait before giving up, in seconds
--socket-timeout SECONDS Time to wait before giving up, in seconds
--source-address IP Client-side IP address to bind to
--source-address IP Client-side IP address to bind to
@ -412,10 +410,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
## Geo-restriction:
## Geo-restriction:
--geo-verification-proxy URL Use this proxy to verify the IP address for
--geo-verification-proxy URL Use this proxy to verify the IP address for
some geo-restricted sites. The default
some geo-restricted sites. The default proxy
proxy specified by --proxy (or none, if the
specified by --proxy (or none, if the option
option is not present) is used for the
is not present) is used for the actual
actual downloading
downloading
--geo-bypass Bypass geographic restriction via faking
--geo-bypass Bypass geographic restriction via faking
X-Forwarded-For HTTP header (default)
X-Forwarded-For HTTP header (default)
--no-geo-bypass Do not bypass geographic restriction via
--no-geo-bypass Do not bypass geographic restriction via
@ -436,10 +434,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
1,2,5,8" if you want to download videos
1,2,5,8" if you want to download videos
indexed 1, 2, 5, 8 in the playlist. You can
indexed 1, 2, 5, 8 in the playlist. You can
specify range: "--playlist-items
specify range: "--playlist-items
1-3,7,10-13", it will download the videos
1-3,7,10-13", it will download the videos at
at index 1, 2, 3, 7, 10, 11, 12 and 13
index 1, 2, 3, 7, 10, 11, 12 and 13
--min-filesize SIZE Do not download any videos smaller than
--min-filesize SIZE Do not download any videos smaller than SIZE
SIZE (e.g. 50k or 44.6m)
(e.g. 50k or 44.6m)
--max-filesize SIZE Do not download any videos larger than SIZE
--max-filesize SIZE Do not download any videos larger than SIZE
(e.g. 50k or 44.6m)
(e.g. 50k or 44.6m)
--date DATE Download only videos uploaded on this date.
--date DATE Download only videos uploaded on this date.
@ -452,26 +450,26 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--dateafter DATE Download only videos uploaded on or after
--dateafter DATE Download only videos uploaded on or after
this date. The date formats accepted is the
this date. The date formats accepted is the
same as --date
same as --date
--match-filters FILTER Generic video filter. Any field (see
--match-filters FILTER Generic video filter. Any "OUTPUT TEMPLATE"
"OUTPUT TEMPLATE") can be compared with a
field can be compared with a number or a
number or a string using the operators
string using the operators defined in
defined in "Filtering formats". You can
"Filtering formats". You can also simply
also simply specify a field to match if the
specify a field to match if the field is
field is present, use "!field" to check if
present, use "!field" to check if the field
the field is not present, and "& " to check
is not present, and "& " to check multiple
multiple conditions. Use a "\" to escape
conditions. Use a "\" to escape "& " or
"& " or quotes if needed. If used multiple
quotes if needed. If used multiple times,
times, the filter matches if atleast one of
the filter matches if atleast one of the
the conditions are met. Eg: --match-filter
conditions are met. Eg: --match-filter
!is_live --match-filter "like_count>?100 &
!is_live --match-filter "like_count>?100 &
description~='(?i)\bcats \& dogs\b'"
description~='(?i)\bcats \& dogs\b'" matches
matches only videos that are not live OR
only videos that are not live OR those that
those that have a like count more than 100
have a like count more than 100 (or the like
(or the like field is not available) and
field is not available) and also has a
also has a description that contains the
description that contains the phrase "cats &
phrase "cats & dogs" (ignoring case). Use
dogs" (caseless ). Use "--match-filter -" to
"--match-filter -" to interactively ask
interactively ask whether to download each
whether to download each video
video
--no-match-filter Do not use generic video filter (default)
--no-match-filter Do not use generic video filter (default)
--no-playlist Download only the video, if the URL refers
--no-playlist Download only the video, if the URL refers
to a video and a playlist
to a video and a playlist
@ -493,13 +491,13 @@ You can also fork the project on github and run your fork's [build workflow](.gi
input URL
input URL
--no-break-per-input --break-on-existing and similar options
--no-break-per-input --break-on-existing and similar options
terminates the entire download queue
terminates the entire download queue
--skip-playlist-after-errors N Number of allowed failures until the rest
--skip-playlist-after-errors N Number of allowed failures until the rest of
of the playlist is skipped
the playlist is skipped
## Download Options:
## Download Options:
-N, --concurrent-fragments N Number of fragments of a dash/hlsnative
-N, --concurrent-fragments N Number of fragments of a dash/hlsnative
video that should be downloaded
video that should be downloaded concurrently
concurrently (default is 1)
(default is 1)
-r, --limit-rate RATE Maximum download rate in bytes per second
-r, --limit-rate RATE Maximum download rate in bytes per second
(e.g. 50K or 4.2M)
(e.g. 50K or 4.2M)
--throttled-rate RATE Minimum download rate in bytes per second
--throttled-rate RATE Minimum download rate in bytes per second
@ -509,13 +507,22 @@ You can also fork the project on github and run your fork's [build workflow](.gi
"infinite"
"infinite"
--file-access-retries RETRIES Number of times to retry on file access
--file-access-retries RETRIES Number of times to retry on file access
error (default is 3), or "infinite"
error (default is 3), or "infinite"
--fragment-retries RETRIES Number of retries for a fragment (default
--fragment-retries RETRIES Number of retries for a fragment (default is
is 10), or "infinite" (DASH, hlsnative and
10), or "infinite" (DASH, hlsnative and ISM)
ISM)
--retry-sleep [TYPE:]EXPR An expression for the time to sleep between
retries in seconds (optionally) prefixed by
the type of retry (file_access, fragment,
http (default)) to apply the sleep to. EXPR
can be a number, linear=START[:END[:STEP=1]]
or exp=START[:END[:BASE=2]]. This option can
be used multiple times to set the sleep for
the different retry types. Eg: --retry-sleep
linear=1::2 --retry-sleep fragment:exp=1:20
--skip-unavailable-fragments Skip unavailable fragments for DASH,
--skip-unavailable-fragments Skip unavailable fragments for DASH,
hlsnative and ISM (default)
hlsnative and ISM downloads (default)
(Alias: --no-abort-on-unavailable-fragment)
(Alias: --no-abort-on-unavailable-fragment)
--abort-on-unavailable-fragment Abort downloading if a fragment is unavailable
--abort-on-unavailable-fragment
Abort download if a fragment is unavailable
(Alias: --no-skip-unavailable-fragments)
(Alias: --no-skip-unavailable-fragments)
--keep-fragments Keep downloaded fragments on disk after
--keep-fragments Keep downloaded fragments on disk after
downloading is finished
downloading is finished
@ -545,27 +552,26 @@ You can also fork the project on github and run your fork's [build workflow](.gi
interrupted. This is enabled by default for
interrupted. This is enabled by default for
live streams
live streams
--no-hls-use-mpegts Do not use the mpegts container for HLS
--no-hls-use-mpegts Do not use the mpegts container for HLS
videos. This is default when not
videos. This is default when not downloading
downloading live streams
live streams
--downloader [PROTO:]NAME Name or path of the external downloader to
--downloader [PROTO:]NAME Name or path of the external downloader to
use (optionally) prefixed by the protocols
use (optionally) prefixed by the protocols
(http, ftp, m3u8, dash, rstp, rtmp, mms) to
(http, ftp, m3u8, dash, rstp, rtmp, mms) to
use it for. Currently supports native,
use it for. Currently supports native,
aria2c, avconv, axel, curl, ffmpeg, httpie,
aria2c, avconv, axel, curl, ffmpeg, httpie,
wget. You can use this option multiple
wget. You can use this option multiple times
times to set different downloaders for
to set different downloaders for different
different protocols. For example,
protocols. For example, --downloader aria2c
--downloader aria2c --downloader
--downloader "dash,m3u8:native" will use
"dash,m3u8:native" will use aria2c for
aria2c for http/ftp downloads, and the
http/ftp downloads, and the native
native downloader for dash/m3u8 downloads
downloader for dash/m3u8 downloads (Alias:
(Alias: --external-downloader)
--external-downloader)
--downloader-args NAME:ARGS Give these arguments to the external
--downloader-args NAME:ARGS Give these arguments to the external
downloader. Specify the downloader name and
downloader. Specify the downloader name and
the arguments separated by a colon ":". For
the arguments separated by a colon ":". For
ffmpeg, arguments can be passed to
ffmpeg, arguments can be passed to different
different positions using the same syntax
positions using the same syntax as
as --postprocessor-args. You can use this
--postprocessor-args. You can use this
option multiple times to give different
option multiple times to give different
arguments to different downloaders (Alias:
arguments to different downloaders (Alias:
--external-downloader-args)
--external-downloader-args)
@ -577,24 +583,22 @@ You can also fork the project on github and run your fork's [build workflow](.gi
comments and ignored
comments and ignored
--no-batch-file Do not read URLs from batch file (default)
--no-batch-file Do not read URLs from batch file (default)
-P, --paths [TYPES:]PATH The paths where the files should be
-P, --paths [TYPES:]PATH The paths where the files should be
downloaded. Specify the type of file and
downloaded. Specify the type of file and the
the path separated by a colon ":". All the
path separated by a colon ":". All the same
same TYPES as --output are supported.
TYPES as --output are supported.
Additionally, you can also provide "home"
Additionally, you can also provide "home"
(default) and "temp" paths. All
(default) and "temp" paths. All intermediary
intermediary files are first downloaded to
files are first downloaded to the temp path
the temp path and then the final files are
and then the final files are moved over to
moved over to the home path after download
the home path after download is finished.
is finished. This option is ignored if
This option is ignored if --output is an
--output is an absolute path
absolute path
-o, --output [TYPES:]TEMPLATE Output filename template; see "OUTPUT
-o, --output [TYPES:]TEMPLATE Output filename template; see "OUTPUT
TEMPLATE" for details
TEMPLATE" for details
--output-na-placeholder TEXT Placeholder value for unavailable meta
--output-na-placeholder TEXT Placeholder for unavailable fields in
fields in output filename template
"OUTPUT TEMPLATE" (default: "NA")
(default: "NA")
--restrict-filenames Restrict filenames to only ASCII characters,
--restrict-filenames Restrict filenames to only ASCII
and avoid "& " and spaces in filenames
characters, and avoid "& " and spaces in
filenames
--no-restrict-filenames Allow Unicode characters, "& " and spaces in
--no-restrict-filenames Allow Unicode characters, "& " and spaces in
filenames (default)
filenames (default)
--windows-filenames Force filenames to be Windows-compatible
--windows-filenames Force filenames to be Windows-compatible
@ -604,8 +608,8 @@ You can also fork the project on github and run your fork's [build workflow](.gi
extension) to the specified number of
extension) to the specified number of
characters
characters
-w, --no-overwrites Do not overwrite any files
-w, --no-overwrites Do not overwrite any files
--force-overwrites Overwrite all video and metadata files.
--force-overwrites Overwrite all video and metadata files. This
This option includes --no-continue
option includes --no-continue
--no-force-overwrites Do not overwrite the video, but overwrite
--no-force-overwrites Do not overwrite the video, but overwrite
related files (default)
related files (default)
-c, --continue Resume partially downloaded files/fragments
-c, --continue Resume partially downloaded files/fragments
@ -615,10 +619,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
restart download of the entire file
restart download of the entire file
--part Use .part files instead of writing directly
--part Use .part files instead of writing directly
into output file (default)
into output file (default)
--no-part Do not use .part files - write directly
--no-part Do not use .part files - write directly into
into output file
output file
--mtime Use the Last-modified header to set the
--mtime Use the Last-modified header to set the file
file modification time (default)
modification time (default)
--no-mtime Do not use the Last-modified header to set
--no-mtime Do not use the Last-modified header to set
the file modification time
the file modification time
--write-description Write video description to a .description
--write-description Write video description to a .description
@ -632,10 +636,9 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--write-description etc. (default)
--write-description etc. (default)
--no-write-playlist-metafiles Do not write playlist metadata when using
--no-write-playlist-metafiles Do not write playlist metadata when using
--write-info-json, --write-description etc.
--write-info-json, --write-description etc.
--clean-info-json Remove some private fields such as
--clean-info-json Remove some private fields such as filenames
filenames from the infojson. Note that it
from the infojson. Note that it could still
could still contain some personal
contain some personal information (default)
information (default)
--no-clean-info-json Write all fields to the infojson
--no-clean-info-json Write all fields to the infojson
--write-comments Retrieve video comments to be placed in the
--write-comments Retrieve video comments to be placed in the
infojson. The comments are fetched even
infojson. The comments are fetched even
@ -647,23 +650,23 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--load-info-json FILE JSON file containing the video information
--load-info-json FILE JSON file containing the video information
(created with the "--write-info-json"
(created with the "--write-info-json"
option)
option)
--cookies FILE Netscape formatted file to read cookies
--cookies FILE Netscape formatted file to read cookies from
from and dump cookie jar in
and dump cookie jar in
--no-cookies Do not read/dump cookies from/to file
--no-cookies Do not read/dump cookies from/to file
(default)
(default)
--cookies-from-browser BROWSER[+KEYRING][:PROFILE]
--cookies-from-browser BROWSER[+KEYRING][:PROFILE]
The name of the browser and (optionally)
The name of the browser and (optionally) the
the name/path of the profile to load
name/path of the profile to load cookies
cookies from, separated by a ":". Currently
from, separated by a ":". Currently
supported browsers are: brave, chrome,
supported browsers are: brave, chrome,
chromium, edge, firefox, opera, safari,
chromium, edge, firefox, opera, safari,
vivaldi. By default, the most recently
vivaldi. By default, the most recently
accessed profile is used. The keyring used
accessed profile is used. The keyring used
for decrypting Chromium cookies on Linux
for decrypting Chromium cookies on Linux can
can be (optionally) specified after the
be (optionally) specified after the browser
browser name separated by a "+". Currently
name separated by a "+". Currently supported
supported keyrings are: basictext,
keyrings are: basictext, gnomekeyring,
gnomekeyring, kwallet
kwallet
--no-cookies-from-browser Do not load cookies from browser (default)
--no-cookies-from-browser Do not load cookies from browser (default)
--cache-dir DIR Location in the filesystem where youtube-dl
--cache-dir DIR Location in the filesystem where youtube-dl
can store some downloaded information (such
can store some downloaded information (such
@ -691,8 +694,8 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--write-desktop-link Write a .desktop Linux internet shortcut
--write-desktop-link Write a .desktop Linux internet shortcut
## Verbosity and Simulation Options:
## Verbosity and Simulation Options:
-q, --quiet Activate quiet mode. If used with
-q, --quiet Activate quiet mode. If used with --verbose,
--verbose, print the log to stderr
print the log to stderr
--no-warnings Ignore warnings
--no-warnings Ignore warnings
-s, --simulate Do not download the video and do not write
-s, --simulate Do not download the video and do not write
anything to disk
anything to disk
@ -713,14 +716,13 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--use-postprocessor, and "video" (default).
--use-postprocessor, and "video" (default).
Implies --quiet. Implies --simulate unless
Implies --quiet. Implies --simulate unless
--no-simulate or later stages of WHEN are
--no-simulate or later stages of WHEN are
used. This option can be used multiple
used. This option can be used multiple times
times
--print-to-file [WHEN:]TEMPLATE FILE
--print-to-file [WHEN:]TEMPLATE FILE
Append given template to the file. The
Append given template to the file. The
values of WHEN and TEMPLATE are same as
values of WHEN and TEMPLATE are same as that
that of --print. FILE uses the same syntax
of --print. FILE uses the same syntax as the
as the output template. This option can be
output template. This option can be used
used multiple times
multiple times
-j, --dump-json Quiet, but print JSON information for each
-j, --dump-json Quiet, but print JSON information for each
video. Simulate unless --no-simulate is
video. Simulate unless --no-simulate is
used. See "OUTPUT TEMPLATE" for a
used. See "OUTPUT TEMPLATE" for a
@ -730,10 +732,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--no-simulate is used. If the URL refers to
--no-simulate is used. If the URL refers to
a playlist, the whole playlist information
a playlist, the whole playlist information
is dumped in a single line
is dumped in a single line
--force-write-archive Force download archive entries to be
--force-write-archive Force download archive entries to be written
written as far as no errors occur, even if
as far as no errors occur, even if -s or
-s or another simulation option is used
another simulation option is used (Alias:
(Alias: --force-download-archive)
--force-download-archive)
--newline Output progress bar as new lines
--newline Output progress bar as new lines
--no-progress Do not print progress bar
--no-progress Do not print progress bar
--progress Show progress bar, even if in quiet mode
--progress Show progress bar, even if in quiet mode
@ -751,15 +753,14 @@ You can also fork the project on github and run your fork's [build workflow](.gi
-v, --verbose Print various debugging information
-v, --verbose Print various debugging information
--dump-pages Print downloaded pages encoded using base64
--dump-pages Print downloaded pages encoded using base64
to debug problems (very verbose)
to debug problems (very verbose)
--write-pages Write downloaded intermediary pages to
--write-pages Write downloaded intermediary pages to files
files in the current directory to debug
in the current directory to debug problems
problems
--print-traffic Display sent and read HTTP traffic
--print-traffic Display sent and read HTTP traffic
## Workarounds:
## Workarounds:
--encoding ENCODING Force the specified encoding (experimental)
--encoding ENCODING Force the specified encoding (experimental)
--legacy-server-connect Explicitly allow HTTPS connection to
--legacy-server-connect Explicitly allow HTTPS connection to servers
servers that do not support RFC 5746 secure
that do not support RFC 5746 secure
renegotiation
renegotiation
--no-check-certificates Suppress HTTPS certificate validation
--no-check-certificates Suppress HTTPS certificate validation
--prefer-insecure Use an unencrypted connection to retrieve
--prefer-insecure Use an unencrypted connection to retrieve
@ -777,8 +778,8 @@ You can also fork the project on github and run your fork's [build workflow](.gi
download. This is the minimum time to sleep
download. This is the minimum time to sleep
when used along with --max-sleep-interval
when used along with --max-sleep-interval
(Alias: --min-sleep-interval)
(Alias: --min-sleep-interval)
--max-sleep-interval SECONDS Maximum number of seconds to sleep. Can
--max-sleep-interval SECONDS Maximum number of seconds to sleep. Can only
only be used along with --min-sleep-interval
be used along with --min-sleep-interval
--sleep-subtitles SECONDS Number of seconds to sleep before each
--sleep-subtitles SECONDS Number of seconds to sleep before each
subtitle download
subtitle download
@ -787,24 +788,23 @@ You can also fork the project on github and run your fork's [build workflow](.gi
for more details
for more details
-S, --format-sort SORTORDER Sort the formats by the fields given, see
-S, --format-sort SORTORDER Sort the formats by the fields given, see
"Sorting Formats" for more details
"Sorting Formats" for more details
--S-force, -- format-sort-force Force user specified sort order to have
--format-sort-force Force user specified sort order to have
precedence over all fields, see "Sorting
precedence over all fields, see "Sorting
Formats" for more details
Formats" for more details (Alias: --S-force)
--no-format-sort-force Some fields have precedence over the user
--no-format-sort-force Some fields have precedence over the user
specified sort order (default), see
specified sort order (default)
"Sorting Formats" for more details
--video-multistreams Allow multiple video streams to be merged
--video-multistreams Allow multiple video streams to be merged
into a single file
into a single file
--no-video-multistreams Only one video stream is downloaded for
--no-video-multistreams Only one video stream is downloaded for each
each output file (default)
output file (default)
--audio-multistreams Allow multiple audio streams to be merged
--audio-multistreams Allow multiple audio streams to be merged
into a single file
into a single file
--no-audio-multistreams Only one audio stream is downloaded for
--no-audio-multistreams Only one audio stream is downloaded for each
each output file (default)
output file (default)
--prefer-free-formats Prefer video formats with free containers
--prefer-free-formats Prefer video formats with free containers
over non-free ones of same quality. Use
over non-free ones of same quality. Use with
with "-S ext" to strictly prefer free
"-S ext" to strictly prefer free containers
containers irrespective of quality
irrespective of quality
--no-prefer-free-formats Don't give any special preference to free
--no-prefer-free-formats Don't give any special preference to free
containers (default)
containers (default)
--check-formats Make sure formats are selected only from
--check-formats Make sure formats are selected only from
@ -829,16 +829,15 @@ You can also fork the project on github and run your fork's [build workflow](.gi
(default) (Alias: --no-write-automatic-subs)
(default) (Alias: --no-write-automatic-subs)
--list-subs List available subtitles of each video.
--list-subs List available subtitles of each video.
Simulate unless --no-simulate is used
Simulate unless --no-simulate is used
--sub-format FORMAT Subtitle format, accepts formats
--sub-format FORMAT Subtitle format; accepts formats preference,
preference, for example: "srt" or
Eg: "srt" or "ass/srt/best"
"ass/srt/best"
--sub-langs LANGS Languages of the subtitles to download (can
--sub-langs LANGS Languages of the subtitles to download (can
be regex) or "all" separated by commas.
be regex) or "all" separated by commas. (Eg:
(Eg: --sub-langs "en.*,ja") You can prefix
--sub-langs "en.*,ja") You can prefix the
the language code with a "-" to exempt it
language code with a "-" to exclud e it from
from the requested languages. (Eg:
the requested languages. (Eg: --sub-langs
--sub-langs all,-live_chat) Use --list-subs
all,-live_chat) Use --list-subs for a list
for a list of available language tags
of available language tags
## Authentication Options:
## Authentication Options:
-u, --username USERNAME Login with this account ID
-u, --username USERNAME Login with this account ID
@ -847,8 +846,8 @@ You can also fork the project on github and run your fork's [build workflow](.gi
-2, --twofactor TWOFACTOR Two-factor authentication code
-2, --twofactor TWOFACTOR Two-factor authentication code
-n, --netrc Use .netrc authentication data
-n, --netrc Use .netrc authentication data
--netrc-location PATH Location of .netrc authentication data;
--netrc-location PATH Location of .netrc authentication data;
either the path or its containing
either the path or its containing directory.
directory. Defaults to ~/.netrc
Defaults to ~/.netrc
--video-password PASSWORD Video password (vimeo, youku)
--video-password PASSWORD Video password (vimeo, youku)
--ap-mso MSO Adobe Pass multiple-system operator (TV
--ap-mso MSO Adobe Pass multiple-system operator (TV
provider) identifier, use --ap-list-mso for
provider) identifier, use --ap-list-mso for
@ -857,30 +856,28 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--ap-password PASSWORD Multiple-system operator account password.
--ap-password PASSWORD Multiple-system operator account password.
If this option is left out, yt-dlp will ask
If this option is left out, yt-dlp will ask
interactively
interactively
--ap-list-mso List all supported multiple-system
--ap-list-mso List all supported multiple-system operators
operators
--client-certificate CERTFILE Path to client certificate file in PEM
--client-certificate CERTFILE Path to client certificate file in PEM
format. May include the private key
format. May include the private key
--client-certificate-key KEYFILE Path to private key file for client
--client-certificate-key KEYFILE
Path to private key file for client
certificate
certificate
--client-certificate-password PASSWORD
--client-certificate-password PASSWORD
Password for client certificate private
Password for client certificate private key,
key, if encrypted. If not provided and the
if encrypted. If not provided, and the key
key is encrypted, yt-dlp will ask
is encrypted, yt-dlp will ask interactively
interactively
## Post-Processing Options:
## Post-Processing Options:
-x, --extract-audio Convert video files to audio-only files
-x, --extract-audio Convert video files to audio-only files
(requires ffmpeg and ffprobe)
(requires ffmpeg and ffprobe)
--audio-format FORMAT Specify audio format to convert the audio
--audio-format FORMAT Specify audio format to convert the audio to
to when -x is used. Currently supported
when -x is used. Currently supported formats
formats are: best (default) or one of aac,
are: best (default) or one of aac, flac,
flac, mp3, m4a, opus, vorbis, wav, alac
mp3, m4a, opus, vorbis, wav, alac
--audio-quality QUALITY Specify ffmpeg audio quality to use when
--audio-quality QUALITY Specify ffmpeg audio quality to use when
converting the audio with -x. Insert a
converting the audio with -x. Insert a value
value between 0 (best) and 10 (worst) for
between 0 (best) and 10 (worst) for VBR or a
VBR or a specific bitrate like 128K
specific bitrate like 128K (default 5)
(default 5)
--remux-video FORMAT Remux the video into another container if
--remux-video FORMAT Remux the video into another container if
necessary (currently supported: mp4, mkv,
necessary (currently supported: mp4, mkv,
flv, webm, mov, avi, mka, ogg, aac, flac,
flv, webm, mov, avi, mka, ogg, aac, flac,
@ -888,11 +885,11 @@ You can also fork the project on github and run your fork's [build workflow](.gi
target container does not support the
target container does not support the
video/audio codec, remuxing will fail. You
video/audio codec, remuxing will fail. You
can specify multiple rules; Eg.
can specify multiple rules; Eg.
"aac>m4a/mov>mp4/mkv" will remux aac to
"aac>m4a/mov>mp4/mkv" will remux aac to m4a,
m4a, mov to mp4 and anything else to mkv.
mov to mp4 and anything else to mkv.
--recode-video FORMAT Re-encode the video into another format if
--recode-video FORMAT Re-encode the video into another format if
re-encoding is necessary. The syntax and
necessary. The syntax and supported formats
supported formats are the same as --remux-video
are the same as --remux-video
--postprocessor-args NAME:ARGS Give these arguments to the postprocessors.
--postprocessor-args NAME:ARGS Give these arguments to the postprocessors.
Specify the postprocessor/executable name
Specify the postprocessor/executable name
and the arguments separated by a colon ":"
and the arguments separated by a colon ":"
@ -907,16 +904,16 @@ You can also fork the project on github and run your fork's [build workflow](.gi
supported executables are: AtomicParsley,
supported executables are: AtomicParsley,
FFmpeg and FFprobe. You can also specify
FFmpeg and FFprobe. You can also specify
"PP+EXE:ARGS" to give the arguments to the
"PP+EXE:ARGS" to give the arguments to the
specified executable only when being used
specified executable only when being used by
by the specified postprocessor.
the specified postprocessor. Additionally,
Additionally, for ffmpeg/ffprobe, "_i"/"_o"
for ffmpeg/ffprobe, "_i"/"_o" can be
can be appended to the prefix optionally
appended to the prefix optionally followed
followed by a number to pass the argument
by a number to pass the argument before the
before the specified input/output file. Eg:
specified input/output file. Eg: --ppa
--ppa "Merger+ffmpeg_i1:-v quiet". You can
"Merger+ffmpeg_i1:-v quiet". You can use
use this option multiple times to give
this option multiple times to give different
different arguments to different
arguments to different postprocessors.
postprocessors. (Alias: --ppa)
(Alias: --ppa)
-k, --keep-video Keep the intermediate video file on disk
-k, --keep-video Keep the intermediate video file on disk
after post-processing
after post-processing
--no-keep-video Delete the intermediate video file after
--no-keep-video Delete the intermediate video file after
@ -930,14 +927,14 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--no-embed-thumbnail Do not embed thumbnail (default)
--no-embed-thumbnail Do not embed thumbnail (default)
--embed-metadata Embed metadata to the video file. Also
--embed-metadata Embed metadata to the video file. Also
embeds chapters/infojson if present unless
embeds chapters/infojson if present unless
--no-embed-chapters/--no-embed-info-json
--no-embed-chapters/--no-embed-info-json are
are used (Alias: --add-metadata)
used (Alias: --add-metadata)
--no-embed-metadata Do not add metadata to file (default)
--no-embed-metadata Do not add metadata to file (default)
(Alias: --no-add-metadata)
(Alias: --no-add-metadata)
--embed-chapters Add chapter markers to the video file
--embed-chapters Add chapter markers to the video file
(Alias: --add-chapters)
(Alias: --add-chapters)
--no-embed-chapters Do not add chapter markers (default)
--no-embed-chapters Do not add chapter markers (default) (Alias:
(Alias: --no-add-chapters)
--no-add-chapters)
--embed-info-json Embed the infojson as an attachment to
--embed-info-json Embed the infojson as an attachment to
mkv/mka video files
mkv/mka video files
--no-embed-info-json Do not embed the infojson as an attachment
--no-embed-info-json Do not embed the infojson as an attachment
@ -953,9 +950,9 @@ You can also fork the project on github and run your fork's [build workflow](.gi
(using dublin core and xdg standards)
(using dublin core and xdg standards)
--concat-playlist POLICY Concatenate videos in a playlist. One of
--concat-playlist POLICY Concatenate videos in a playlist. One of
"never", "always", or "multi_video"
"never", "always", or "multi_video"
(default; only when the videos form a
(default; only when the videos form a single
single show). All the video files must have
show). All the video files must have same
same codecs and number of streams to be
codecs and number of streams to be
concatable. The "pl_video:" prefix can be
concatable. The "pl_video:" prefix can be
used with "--paths" and "--output" to set
used with "--paths" and "--output" to set
the output filename for the concatenated
the output filename for the concatenated
@ -978,10 +975,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
field as arguments to the command. After
field as arguments to the command. After
download, an additional field "filepath"
download, an additional field "filepath"
that contains the final path of the
that contains the final path of the
downloaded file is also available, and if
downloaded file is also available, and if no
no fields are passed, %(filepath)q is
fields are passed, %(filepath)q is appended
appended to the end of the command. This
to the end of the command. This option can
option can be used multiple times
be used multiple times
--no-exec Remove any previously defined --exec
--no-exec Remove any previously defined --exec
--convert-subs FORMAT Convert the subtitles to another format
--convert-subs FORMAT Convert the subtitles to another format
(currently supported: srt, vtt, ass, lrc)
(currently supported: srt, vtt, ass, lrc)
@ -989,10 +986,10 @@ You can also fork the project on github and run your fork's [build workflow](.gi
--convert-thumbnails FORMAT Convert the thumbnails to another format
--convert-thumbnails FORMAT Convert the thumbnails to another format
(currently supported: jpg, png, webp)
(currently supported: jpg, png, webp)
--split-chapters Split video into multiple files based on
--split-chapters Split video into multiple files based on
internal chapters. The "chapter:" prefix
internal chapters. The "chapter:" prefix can
can be used with "--paths" and "--output"
be used with "--paths" and "--output" to set
to set the output filename for the split
the output filename for the split files. See
files. See "OUTPUT TEMPLATE" for details
"OUTPUT TEMPLATE" for details
--no-split-chapters Do not split video based on chapters
--no-split-chapters Do not split video based on chapters
(default)
(default)
--remove-chapters REGEX Remove chapters whose title matches the
--remove-chapters REGEX Remove chapters whose title matches the
@ -1004,14 +1001,14 @@ You can also fork the project on github and run your fork's [build workflow](.gi
be used multiple times
be used multiple times
--no-remove-chapters Do not remove any chapters from the file
--no-remove-chapters Do not remove any chapters from the file
(default)
(default)
--force-keyframes-at-cuts Force keyframes around the chapters before
--force-keyframes-at-cuts Force keyframes around chapters when
removing/splitting them. Requires a
removing/splitting them. The resulting video
re-encode and thus is very slow, but the
may have fewer artifacts around the cuts,
resulting video may have fewer artifacts
but is very slow due to needing a re-encode
around the cuts
--no-force-keyframes-at-cuts Do not force keyframes around the chapters
--no-force-keyframes-at-cuts Do not force keyframes around the chapters
when cutting/splitting (default)
when cutting/splitting (default)
--use-postprocessor NAME[:ARGS] The (case sensitive) name of plugin
--use-postprocessor NAME[:ARGS]
The (case sensitive) name of plugin
postprocessors to be enabled, and
postprocessors to be enabled, and
(optionally) arguments to be passed to it,
(optionally) arguments to be passed to it,
separated by a colon ":". ARGS are a
separated by a colon ":". ARGS are a
@ -1023,12 +1020,12 @@ You can also fork the project on github and run your fork's [build workflow](.gi
"before_dl" (before each video download),
"before_dl" (before each video download),
"post_process" (after each video download;
"post_process" (after each video download;
default), "after_move" (after moving video
default), "after_move" (after moving video
file to it's final locations),
file to it's final locations), "after_video"
"after_video" (after downloading and
(after downloading and processing all
processing all formats of a video), or
formats of a video), or "playlist" (at end
"playlist" (at end of playlist). This
of playlist). This option can be used
option can be used multiple times to add
multiple times to add different
different postprocessors
postprocessors
## SponsorBlock Options:
## SponsorBlock Options:
Make chapter entries for, or remove various segments (sponsor,
Make chapter entries for, or remove various segments (sponsor,
@ -1037,37 +1034,37 @@ Make chapter entries for, or remove various segments (sponsor,
--sponsorblock-mark CATS SponsorBlock categories to create chapters
--sponsorblock-mark CATS SponsorBlock categories to create chapters
for, separated by commas. Available
for, separated by commas. Available
categories are all, default(=all), sponsor,
categories are sponsor, intro, outro,
intro, outro, selfpromo, preview, filler,
selfpromo, preview, filler, interaction,
interaction, music_offtopic, poi_highlight.
music_offtopic, poi_highlight, all and
You can prefix the category with a "-" to
default (=all). You can prefix the category
exempt it. See [1] for description of the
with a "-" to exclude it. See [1] for
categories. Eg: --sponsorblock-mark all,-preview
description of the categories. Eg:
--sponsorblock-mark all,-preview
[1] https://wiki.sponsor.ajay.app/w/Segment_Categories
[1] https://wiki.sponsor.ajay.app/w/Segment_Categories
--sponsorblock-remove CATS SponsorBlock categories to be removed from
--sponsorblock-remove CATS SponsorBlock categories to be removed from
the video file, separated by commas. If a
the video file, separated by commas. If a
category is present in both mark and
category is present in both mark and remove,
remove, remove takes precedence. The syntax
remove takes precedence. The syntax and
and available categories are the same as
available categories are the same as for
for --sponsorblock-mark except that
--sponsorblock-mark except that "default"
"default" refers to "all,-filler" and
refers to "all,-filler" and poi_highlight is
poi_highlight is not available
not available
--sponsorblock-chapter-title TEMPLATE
--sponsorblock-chapter-title TEMPLATE
The title template for SponsorBlock
An output template for the title of the
chapters created by --sponsorblock-mark.
SponsorBlock chapters created by
The same syntax as the output template is
--sponsorblock-mark. The only available
used, but the only available fields are
fields are start_time, end_time, category,
start_time, end_time, category, categories,
categories, name, category_names. Defaults
name, category_names. Defaults to
to "[SponsorBlock]: %(category_names)l"
"[SponsorBlock]: %(category_names)l"
--no-sponsorblock Disable both --sponsorblock-mark and
--no-sponsorblock Disable both --sponsorblock-mark and
--sponsorblock-remove
--sponsorblock-remove
--sponsorblock-api URL SponsorBlock API location, defaults to
--sponsorblock-api URL SponsorBlock API location, defaults to
https://sponsor.ajay.app
https://sponsor.ajay.app
## Extractor Options:
## Extractor Options:
--extractor-retries RETRIES Number of retries for known extractor
--extractor-retries RETRIES Number of retries for known extractor errors
errors (default is 3), or "infinite"
(default is 3), or "infinite"
--allow-dynamic-mpd Process dynamic DASH manifests (default)
--allow-dynamic-mpd Process dynamic DASH manifests (default)
(Alias: --no-ignore-dynamic-mpd)
(Alias: --no-ignore-dynamic-mpd)
--ignore-dynamic-mpd Do not process dynamic DASH manifests
--ignore-dynamic-mpd Do not process dynamic DASH manifests
@ -1075,8 +1072,8 @@ Make chapter entries for, or remove various segments (sponsor,
--hls-split-discontinuity Split HLS playlists to different formats at
--hls-split-discontinuity Split HLS playlists to different formats at
discontinuities such as ad breaks
discontinuities such as ad breaks
--no-hls-split-discontinuity Do not split HLS playlists to different
--no-hls-split-discontinuity Do not split HLS playlists to different
formats at discontinuities such as ad
formats at discontinuities such as ad breaks
breaks (default)
(default)
--extractor-args KEY:ARGS Pass these arguments to the extractor. See
--extractor-args KEY:ARGS Pass these arguments to the extractor. See
"EXTRACTOR ARGUMENTS" for details. You can
"EXTRACTOR ARGUMENTS" for details. You can
use this option multiple times to give
use this option multiple times to give