'Specify any key (see "OUTPUT TEMPLATE" for a list of available keys) to '
'match if the key is present, '
'!key to check if the key is not present, '
- 'key>NUMBER (like "comment_count > 12", also works with '
+ 'key>NUMBER (like "view_count > 12", also works with '
'>=, <, <=, !=, =) to compare against a number, '
'key = \'LITERAL\' (like "uploader = \'Mike Smith\'", also works with !=) '
'to match against a string literal '
help='Download only the video, if the URL refers to a video and a playlist')
selection.add_option(
'--yes-playlist',
- action='store_false', dest='noplaylist', default=False,
+ action='store_false', dest='noplaylist',
help='Download the playlist, if the URL refers to a video and a playlist')
selection.add_option(
'--age-limit',
help='Languages of the subtitles to download (optional) separated by commas, use --list-subs for available language tags')
downloader = optparse.OptionGroup(parser, 'Download Options')
+ downloader.add_option(
+ '-N', '--concurrent-fragments',
+ dest='concurrent_fragment_downloads', metavar='N', default=1, type=int,
+ help='Number of fragments to download concurrently (default is %default)')
downloader.add_option(
'-r', '--limit-rate', '--rate-limit',
dest='ratelimit', metavar='RATE',
filesystem.add_option(
'--get-comments',
action='store_true', dest='getcomments', default=False,
- help='Retrieve video comments to be placed in the .info.json file')
+ help=(
+ 'Retrieve video comments to be placed in the .info.json file. '
+ 'The comments are fetched even without this option if the extraction is known to be quick'))
filesystem.add_option(
'--load-info-json', '--load-info',
dest='load_info_filename', metavar='FILE',
'Give field name to extract data from, and format of the field seperated by a ":". '
'Either regular expression with named capture groups or a '
'similar syntax to the output template can also be used. '
- 'The parsed parameters replace any existing values and can be use in output template'
+ 'The parsed parameters replace any existing values and can be use in output template. '
'This option can be used multiple times. '
'Example: --parse-metadata "title:%(artist)s - %(title)s" matches a title like '
'"Coldplay - Paradise". '
help='Write metadata to the video file\'s xattrs (using dublin core and xdg standards)')
postproc.add_option(
'--fixup',
- metavar='POLICY', dest='fixup', default='detect_or_warn',
+ metavar='POLICY', dest='fixup', default=None,
help=(
'Automatically correct known faults of the file. '
'One of never (do nothing), warn (only emit a warning), '
'--convert-subs', '--convert-subtitles',
metavar='FORMAT', dest='convertsubtitles', default=None,
help='Convert the subtitles to other format (currently supported: srt|ass|vtt|lrc)')
+ postproc.add_option(
+ '--split-chapters', '--split-tracks',
+ dest='split_chapters', action='store_true', default=False,
+ help=(
+ 'Split video into multiple files based on internal chapters. '
+ 'The "chapter:" prefix can be used with "--paths" and "--output" to '
+ 'set the output filename for the split files. See "OUTPUT TEMPLATE" for details'))
+ postproc.add_option(
+ '--no-split-chapters', '--no-split-tracks',
+ dest='split_chapters', action='store_false',
+ help='Do not split video based on chapters (default)')
sponskrub = optparse.OptionGroup(parser, 'SponSkrub (SponsorBlock) Options', description=(
'SponSkrub (https://github.com/yt-dlp/SponSkrub) is a utility to mark/remove sponsor segments '
help=optparse.SUPPRESS_HELP)
extractor = optparse.OptionGroup(parser, 'Extractor Options')
+ extractor.add_option(
+ '--extractor-retries',
+ dest='extractor_retries', metavar='RETRIES', default=3,
+ help='Number of retries for known extractor errors (default is %default), or "infinite"')
extractor.add_option(
'--allow-dynamic-mpd', '--no-ignore-dynamic-mpd',
action='store_true', dest='dynamic_mpd', default=True,