[doc, cleanup] Re-indent "Usage and Options" section

pull/3801/head
pukkandan 2 years ago
parent 23326151c4
commit 2dd5a2e3a1
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39

@ -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 exclude 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

@ -134,10 +134,8 @@ class _YoutubeDLHelpFormatter(optparse.IndentedHelpFormatter):
def __init__(self): def __init__(self):
# No need to wrap help messages if we're on a wide console # No need to wrap help messages if we're on a wide console
max_width = compat_get_terminal_size().columns or 80 max_width = compat_get_terminal_size().columns or 80
# 47% is chosen because that is how README.md is currently formatted # The % is chosen to get a pretty output in README.md
# and moving help text even further to the right is undesirable. super().__init__(width=max_width, max_help_position=int(0.45 * max_width))
# This can be reduced in the future to get a prettier output
super().__init__(width=max_width, max_help_position=int(0.47 * max_width))
@staticmethod @staticmethod
def format_option_strings(option): def format_option_strings(option):
@ -345,7 +343,12 @@ def create_parser():
general.add_option( general.add_option(
'--default-search', '--default-search',
dest='default_search', metavar='PREFIX', dest='default_search', metavar='PREFIX',
help='Use this prefix for unqualified URLs. For example "gvsearch2:" downloads two videos from google videos for the search term "large apple". Use the value "auto" to let yt-dlp guess ("auto_warning" to emit a warning when guessing). "error" just throws an error. The default value "fixup_error" repairs broken URLs, but emits an error if this is not possible instead of searching') help=(
'Use this prefix for unqualified URLs. '
'Eg: "gvsearch2:python" downloads two videos from google videos for the search term "python". '
'Use the value "auto" to let yt-dlp guess ("auto_warning" to emit a warning when guessing). '
'"error" just throws an error. The default value "fixup_error" repairs broken URLs, '
'but emits an error if this is not possible instead of searching'))
general.add_option( general.add_option(
'--ignore-config', '--no-config', '--ignore-config', '--no-config',
action='store_true', dest='ignoreconfig', action='store_true', dest='ignoreconfig',
@ -439,10 +442,8 @@ def create_parser():
'--proxy', dest='proxy', '--proxy', dest='proxy',
default=None, metavar='URL', default=None, metavar='URL',
help=( help=(
'Use the specified HTTP/HTTPS/SOCKS proxy. To enable ' 'Use the specified HTTP/HTTPS/SOCKS proxy. To enable SOCKS proxy, specify a proper scheme. '
'SOCKS proxy, specify a proper scheme. For example ' 'Eg: socks5://user:pass@127.0.0.1:1080/. Pass in an empty string (--proxy "") for direct connection'))
'socks5://user:pass@127.0.0.1:1080/. Pass in an empty string (--proxy "") '
'for direct connection'))
network.add_option( network.add_option(
'--socket-timeout', '--socket-timeout',
dest='socket_timeout', type=float, default=None, metavar='SECONDS', dest='socket_timeout', type=float, default=None, metavar='SECONDS',
@ -550,7 +551,7 @@ def create_parser():
'--match-filters', '--match-filters',
metavar='FILTER', dest='match_filter', action='append', metavar='FILTER', dest='match_filter', action='append',
help=( help=(
'Generic video filter. Any field (see "OUTPUT TEMPLATE") can be compared with a ' 'Generic video filter. Any "OUTPUT TEMPLATE" field can be compared with a '
'number or a string using the operators defined in "Filtering formats". ' 'number or a string using the operators defined in "Filtering formats". '
'You can also simply specify a field to match if the field is present, ' 'You can also simply specify a field to match if the field is present, '
'use "!field" to check if the field is not present, and "&" to check multiple conditions. ' 'use "!field" to check if the field is not present, and "&" to check multiple conditions. '
@ -559,7 +560,7 @@ def create_parser():
'!is_live --match-filter "like_count>?100 & description~=\'(?i)\\bcats \\& dogs\\b\'" ' '!is_live --match-filter "like_count>?100 & description~=\'(?i)\\bcats \\& dogs\\b\'" '
'matches only videos that are not live OR those that have a like count more than 100 ' 'matches only videos that are not live OR those that have a like count more than 100 '
'(or the like field is not available) and also has a description ' '(or the like field is not available) and also has a description '
'that contains the phrase "cats & dogs" (ignoring case). ' 'that contains the phrase "cats & dogs" (caseless). '
'Use "--match-filter -" to interactively ask whether to download each video')) 'Use "--match-filter -" to interactively ask whether to download each video'))
selection.add_option( selection.add_option(
'--no-match-filter', '--no-match-filter',
@ -671,7 +672,7 @@ def create_parser():
'--client-certificate-password', '--client-certificate-password',
dest='client_certificate_password', metavar='PASSWORD', dest='client_certificate_password', metavar='PASSWORD',
help='Password for client certificate private key, if encrypted. ' help='Password for client certificate private key, if encrypted. '
'If not provided and the key is encrypted, yt-dlp will ask interactively') 'If not provided, and the key is encrypted, yt-dlp will ask interactively')
video_format = optparse.OptionGroup(parser, 'Video Format Options') video_format = optparse.OptionGroup(parser, 'Video Format Options')
video_format.add_option( video_format.add_option(
@ -688,13 +689,11 @@ def create_parser():
action='store_true', dest='format_sort_force', metavar='FORMAT', default=False, action='store_true', dest='format_sort_force', metavar='FORMAT', default=False,
help=( help=(
'Force user specified sort order to have precedence over all fields, ' 'Force user specified sort order to have precedence over all fields, '
'see "Sorting Formats" for more details')) 'see "Sorting Formats" for more details (Alias: --S-force)'))
video_format.add_option( video_format.add_option(
'--no-format-sort-force', '--no-format-sort-force',
action='store_false', dest='format_sort_force', metavar='FORMAT', default=False, action='store_false', dest='format_sort_force', metavar='FORMAT', default=False,
help=( help='Some fields have precedence over the user specified sort order (default)')
'Some fields have precedence over the user specified sort order (default), '
'see "Sorting Formats" for more details'))
video_format.add_option( video_format.add_option(
'--video-multistreams', '--video-multistreams',
action='store_true', dest='allow_multiple_video_streams', default=None, action='store_true', dest='allow_multiple_video_streams', default=None,
@ -793,14 +792,14 @@ def create_parser():
subtitles.add_option( subtitles.add_option(
'--sub-format', '--sub-format',
action='store', dest='subtitlesformat', metavar='FORMAT', default='best', action='store', dest='subtitlesformat', metavar='FORMAT', default='best',
help='Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"') help='Subtitle format; accepts formats preference, Eg: "srt" or "ass/srt/best"')
subtitles.add_option( subtitles.add_option(
'--sub-langs', '--srt-langs', '--sub-langs', '--srt-langs',
action='callback', dest='subtitleslangs', metavar='LANGS', type='str', action='callback', dest='subtitleslangs', metavar='LANGS', type='str',
default=[], callback=_list_from_options_callback, default=[], callback=_list_from_options_callback,
help=( help=(
'Languages of the subtitles to download (can be regex) or "all" separated by commas. (Eg: --sub-langs "en.*,ja") ' 'Languages of the subtitles to download (can be regex) or "all" separated by commas. (Eg: --sub-langs "en.*,ja") '
'You can prefix the language code with a "-" to exempt it from the requested languages. (Eg: --sub-langs all,-live_chat) ' 'You can prefix the language code with a "-" to exclude it from the requested languages. (Eg: --sub-langs all,-live_chat) '
'Use --list-subs for a list of available language tags')) 'Use --list-subs for a list of available language tags'))
downloader = optparse.OptionGroup(parser, 'Download Options') downloader = optparse.OptionGroup(parser, 'Download Options')
@ -837,17 +836,18 @@ def create_parser():
'default_key': 'http', 'default_key': 'http',
}, help=( }, help=(
'An expression for the time to sleep between retries in seconds (optionally) prefixed ' 'An expression for the time to sleep between retries in seconds (optionally) prefixed '
'by the type of retry (http (default), fragment, file_access) to apply the sleep to. ' 'by the type of retry (file_access, fragment, http (default)) to apply the sleep to. '
'EXPR can be a number, or of the forms linear=START[:END[:STEP=1]] or exp=START[:END[:BASE=2]]. ' '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')) 'Eg: --retry-sleep linear=1::2 --retry-sleep fragment:exp=1:20'))
downloader.add_option( downloader.add_option(
'--skip-unavailable-fragments', '--no-abort-on-unavailable-fragment', '--skip-unavailable-fragments', '--no-abort-on-unavailable-fragment',
action='store_true', dest='skip_unavailable_fragments', default=True, action='store_true', dest='skip_unavailable_fragments', default=True,
help='Skip unavailable fragments for DASH, hlsnative and ISM (default) (Alias: --no-abort-on-unavailable-fragment)') help='Skip unavailable fragments for DASH, hlsnative and ISM downloads (default) (Alias: --no-abort-on-unavailable-fragment)')
downloader.add_option( downloader.add_option(
'--abort-on-unavailable-fragment', '--no-skip-unavailable-fragments', '--abort-on-unavailable-fragment', '--no-skip-unavailable-fragments',
action='store_false', dest='skip_unavailable_fragments', action='store_false', dest='skip_unavailable_fragments',
help='Abort downloading if a fragment is unavailable (Alias: --no-skip-unavailable-fragments)') help='Abort download if a fragment is unavailable (Alias: --no-skip-unavailable-fragments)')
downloader.add_option( downloader.add_option(
'--keep-fragments', '--keep-fragments',
action='store_true', dest='keep_fragments', default=False, action='store_true', dest='keep_fragments', default=False,
@ -1213,7 +1213,7 @@ def create_parser():
filesystem.add_option( filesystem.add_option(
'--output-na-placeholder', '--output-na-placeholder',
dest='outtmpl_na_placeholder', metavar='TEXT', default='NA', dest='outtmpl_na_placeholder', metavar='TEXT', default='NA',
help=('Placeholder value for unavailable meta fields in output filename template (default: "%default")')) help=('Placeholder for unavailable fields in "OUTPUT TEMPLATE" (default: "%default")'))
filesystem.add_option( filesystem.add_option(
'--autonumber-size', '--autonumber-size',
dest='autonumber_size', metavar='NUMBER', type=int, dest='autonumber_size', metavar='NUMBER', type=int,
@ -1436,9 +1436,7 @@ def create_parser():
postproc.add_option( postproc.add_option(
'--recode-video', '--recode-video',
metavar='FORMAT', dest='recodevideo', default=None, metavar='FORMAT', dest='recodevideo', default=None,
help=( help='Re-encode the video into another format if necessary. The syntax and supported formats are the same as --remux-video')
'Re-encode the video into another format if re-encoding is necessary. '
'The syntax and supported formats are the same as --remux-video'))
postproc.add_option( postproc.add_option(
'--postprocessor-args', '--ppa', '--postprocessor-args', '--ppa',
metavar='NAME:ARGS', dest='postprocessor_args', default={}, type='str', metavar='NAME:ARGS', dest='postprocessor_args', default={}, type='str',
@ -1635,9 +1633,9 @@ def create_parser():
'--force-keyframes-at-cuts', '--force-keyframes-at-cuts',
action='store_true', dest='force_keyframes_at_cuts', default=False, action='store_true', dest='force_keyframes_at_cuts', default=False,
help=( help=(
'Force keyframes around the chapters before removing/splitting them. ' 'Force keyframes around chapters when removing/splitting them. '
'Requires a re-encode and thus is very slow, but the resulting video ' 'The resulting video may have fewer artifacts around the cuts, '
'may have fewer artifacts around the cuts')) 'but is very slow due to needing a re-encode'))
postproc.add_option( postproc.add_option(
'--no-force-keyframes-at-cuts', '--no-force-keyframes-at-cuts',
action='store_false', dest='force_keyframes_at_cuts', action='store_false', dest='force_keyframes_at_cuts',
@ -1675,8 +1673,8 @@ def create_parser():
'aliases': {'default': ['all']} 'aliases': {'default': ['all']}
}, help=( }, help=(
'SponsorBlock categories to create chapters for, separated by commas. ' 'SponsorBlock categories to create chapters for, separated by commas. '
f'Available categories are all, default(=all), {", ".join(SponsorBlockPP.CATEGORIES.keys())}. ' f'Available categories are {", ".join(SponsorBlockPP.CATEGORIES.keys())}, all and default (=all). '
'You can prefix the category with a "-" to exempt it. See [1] for description of the categories. ' 'You can prefix the category with a "-" to exclude it. See [1] for description of the categories. '
'Eg: --sponsorblock-mark all,-preview [1] https://wiki.sponsor.ajay.app/w/Segment_Categories')) 'Eg: --sponsorblock-mark all,-preview [1] https://wiki.sponsor.ajay.app/w/Segment_Categories'))
sponsorblock.add_option( sponsorblock.add_option(
'--sponsorblock-remove', metavar='CATS', '--sponsorblock-remove', metavar='CATS',
@ -1697,9 +1695,9 @@ def create_parser():
'--sponsorblock-chapter-title', metavar='TEMPLATE', '--sponsorblock-chapter-title', metavar='TEMPLATE',
default=DEFAULT_SPONSORBLOCK_CHAPTER_TITLE, dest='sponsorblock_chapter_title', default=DEFAULT_SPONSORBLOCK_CHAPTER_TITLE, dest='sponsorblock_chapter_title',
help=( help=(
'The title template for SponsorBlock chapters created by --sponsorblock-mark. ' 'An output template for the title of the SponsorBlock chapters created by --sponsorblock-mark. '
'The same syntax as the output template is used, but the only available fields are ' 'The only available fields are start_time, end_time, category, categories, name, category_names. '
'start_time, end_time, category, categories, name, category_names. Defaults to "%default"')) 'Defaults to "%default"'))
sponsorblock.add_option( sponsorblock.add_option(
'--no-sponsorblock', default=False, '--no-sponsorblock', default=False,
action='store_true', dest='no_sponsorblock', action='store_true', dest='no_sponsorblock',

Loading…
Cancel
Save