Re-implement deprecated option `--id`

Despite `--title`, `--literal` etc being deprecated,
`--id` is still documented in youtube-dl and so should be kept
This commit is contained in:
pukkandan 2021-10-22 04:34:22 +05:30
parent f0ded3dad3
commit 19b824f693
No known key found for this signature in database
GPG Key ID: 0F00D95A001F4698
3 changed files with 13 additions and 6 deletions

View File

@ -1658,6 +1658,7 @@ While these options still work, their use is not recommended since there are oth
--print-json -j --no-simulate --print-json -j --no-simulate
--autonumber-size NUMBER Use string formatting. Eg: %(autonumber)03d --autonumber-size NUMBER Use string formatting. Eg: %(autonumber)03d
--autonumber-start NUMBER Use internal field formatting like %(autonumber+NUMBER)s --autonumber-start NUMBER Use internal field formatting like %(autonumber+NUMBER)s
--id -o "%(id)s.%(ext)s"
--metadata-from-title FORMAT --parse-metadata "%(title)s:FORMAT" --metadata-from-title FORMAT --parse-metadata "%(title)s:FORMAT"
--hls-prefer-native --downloader "m3u8:native" --hls-prefer-native --downloader "m3u8:native"
--hls-prefer-ffmpeg --downloader "m3u8:ffmpeg" --hls-prefer-ffmpeg --downloader "m3u8:ffmpeg"
@ -1724,7 +1725,6 @@ These options may no longer work as intended
#### Removed #### Removed
These options were deprecated since 2014 and have now been entirely removed These options were deprecated since 2014 and have now been entirely removed
--id -o "%(id)s.%(ext)s"
-A, --auto-number -o "%(autonumber)s-%(id)s.%(ext)s" -A, --auto-number -o "%(autonumber)s-%(id)s.%(ext)s"
-t, --title -o "%(title)s-%(id)s.%(ext)s" -t, --title -o "%(title)s-%(id)s.%(ext)s"
-l, --literal -o accepts literal names -l, --literal -o accepts literal names

View File

@ -259,6 +259,9 @@ def _real_main(argv=None):
compat_opts = opts.compat_opts compat_opts = opts.compat_opts
def report_conflict(arg1, arg2):
warnings.append(f'{arg2} is ignored since {arg1} was given')
def _unused_compat_opt(name): def _unused_compat_opt(name):
if name not in compat_opts: if name not in compat_opts:
return False return False
@ -290,10 +293,14 @@ def _real_main(argv=None):
if _video_multistreams_set is False and _audio_multistreams_set is False: if _video_multistreams_set is False and _audio_multistreams_set is False:
_unused_compat_opt('multistreams') _unused_compat_opt('multistreams')
outtmpl_default = opts.outtmpl.get('default') outtmpl_default = opts.outtmpl.get('default')
if opts.useid:
if outtmpl_default is None:
outtmpl_default = opts.outtmpl['default'] = '%(id)s.%(ext)s'
else:
report_conflict('--output', '--id')
if 'filename' in compat_opts: if 'filename' in compat_opts:
if outtmpl_default is None: if outtmpl_default is None:
outtmpl_default = '%(title)s-%(id)s.%(ext)s' outtmpl_default = opts.outtmpl['default'] = '%(title)s-%(id)s.%(ext)s'
opts.outtmpl.update({'default': outtmpl_default})
else: else:
_unused_compat_opt('filename') _unused_compat_opt('filename')
@ -366,9 +373,6 @@ def _real_main(argv=None):
opts.addchapters = True opts.addchapters = True
opts.remove_chapters = opts.remove_chapters or [] opts.remove_chapters = opts.remove_chapters or []
def report_conflict(arg1, arg2):
warnings.append('%s is ignored since %s was given' % (arg2, arg1))
if (opts.remove_chapters or sponsorblock_query) and opts.sponskrub is not False: if (opts.remove_chapters or sponsorblock_query) and opts.sponskrub is not False:
if opts.sponskrub: if opts.sponskrub:
if opts.remove_chapters: if opts.remove_chapters:

View File

@ -975,6 +975,9 @@ def parseOpts(overrideArguments=None):
'--no-batch-file', '--no-batch-file',
dest='batchfile', action='store_const', const=None, dest='batchfile', action='store_const', const=None,
help='Do not read URLs from batch file (default)') help='Do not read URLs from batch file (default)')
filesystem.add_option(
'--id', default=False,
action='store_true', dest='useid', help=optparse.SUPPRESS_HELP)
filesystem.add_option( filesystem.add_option(
'-P', '--paths', '-P', '--paths',
metavar='[TYPES:]PATH', dest='paths', default={}, type='str', metavar='[TYPES:]PATH', dest='paths', default={}, type='str',