diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | yt_dlp/__init__.py | 14 | ||||
| -rw-r--r-- | yt_dlp/options.py | 3 | 
3 files changed, 13 insertions, 6 deletions
| @@ -1658,6 +1658,7 @@ While these options still work, their use is not recommended since there are oth      --print-json                     -j --no-simulate      --autonumber-size NUMBER         Use string formatting. Eg: %(autonumber)03d      --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"      --hls-prefer-native              --downloader "m3u8:native"      --hls-prefer-ffmpeg              --downloader "m3u8:ffmpeg" @@ -1724,7 +1725,6 @@ These options may no longer work as intended  #### 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"      -t, --title                      -o "%(title)s-%(id)s.%(ext)s"      -l, --literal                    -o accepts literal names diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py index b952cc062..d97d4af64 100644 --- a/yt_dlp/__init__.py +++ b/yt_dlp/__init__.py @@ -259,6 +259,9 @@ def _real_main(argv=None):      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):          if name not in compat_opts:              return False @@ -290,10 +293,14 @@ def _real_main(argv=None):      if _video_multistreams_set is False and _audio_multistreams_set is False:          _unused_compat_opt('multistreams')      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 outtmpl_default is None: -            outtmpl_default = '%(title)s-%(id)s.%(ext)s' -            opts.outtmpl.update({'default': outtmpl_default}) +            outtmpl_default = opts.outtmpl['default'] = '%(title)s-%(id)s.%(ext)s'          else:              _unused_compat_opt('filename') @@ -366,9 +373,6 @@ def _real_main(argv=None):          opts.addchapters = True      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.sponskrub:              if opts.remove_chapters: diff --git a/yt_dlp/options.py b/yt_dlp/options.py index 0638e8642..719a1bce4 100644 --- a/yt_dlp/options.py +++ b/yt_dlp/options.py @@ -976,6 +976,9 @@ def parseOpts(overrideArguments=None):          dest='batchfile', action='store_const', const=None,          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(          '-P', '--paths',          metavar='[TYPES:]PATH', dest='paths', default={}, type='str',          action='callback', callback=_dict_from_options_callback, | 
