]> jfr.im git - yt-dlp.git/commitdiff
Allow `--no-write-thumbnail` to override `--write-all-thumbnail`
authorpukkandan <redacted>
Mon, 6 Dec 2021 17:56:34 +0000 (23:26 +0530)
committerpukkandan <redacted>
Mon, 6 Dec 2021 17:57:35 +0000 (23:27 +0530)
Closes #1900

yt_dlp/__init__.py
yt_dlp/options.py

index 91a01c38faf535da7d927cf6ba671c0e037749ba..5d20ad8c310c7b87f4c7c4438ff853f6729f2459 100644 (file)
@@ -559,13 +559,12 @@ def report_unplayable_conflict(opt_name, arg, default=False, allowed=None):
             '_from_cli': True,
         })
     if opts.embedthumbnail:
-        already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails
         postprocessors.append({
             'key': 'EmbedThumbnail',
             # already_have_thumbnail = True prevents the file from being deleted after embedding
-            'already_have_thumbnail': already_have_thumbnail
+            'already_have_thumbnail': opts.writethumbnail
         })
-        if not already_have_thumbnail:
+        if not opts.writethumbnail:
             opts.writethumbnail = True
             opts.outtmpl['pl_thumbnail'] = ''
     if opts.split_chapters:
@@ -695,8 +694,8 @@ def report_deprecation(val, old, new=None):
         'allow_playlist_files': opts.allow_playlist_files,
         'clean_infojson': opts.clean_infojson,
         'getcomments': opts.getcomments,
-        'writethumbnail': opts.writethumbnail,
-        'write_all_thumbnails': opts.write_all_thumbnails,
+        'writethumbnail': opts.writethumbnail is True,
+        'write_all_thumbnails': opts.writethumbnail == 'all',
         'writelink': opts.writelink,
         'writeurllink': opts.writeurllink,
         'writewebloclink': opts.writewebloclink,
index d20f65e99c6385b1f27137972a3aab0ed86e4fec..bb421e0f81f1374d868bc8523a5a1c0a132a7b45 100644 (file)
@@ -1187,7 +1187,10 @@ def _dict_from_options_callback(
     thumbnail = optparse.OptionGroup(parser, 'Thumbnail Options')
     thumbnail.add_option(
         '--write-thumbnail',
-        action='store_true', dest='writethumbnail', default=False,
+        action='callback', dest='writethumbnail', default=False,
+        # Should override --no-write-thumbnail, but not --write-all-thumbnail
+        callback=lambda option, _, __, parser: setattr(
+            parser.values, option.dest, getattr(parser.values, option.dest) or True),
         help='Write thumbnail image to disk')
     thumbnail.add_option(
         '--no-write-thumbnail',
@@ -1195,7 +1198,7 @@ def _dict_from_options_callback(
         help='Do not write thumbnail image to disk (default)')
     thumbnail.add_option(
         '--write-all-thumbnails',
-        action='store_true', dest='write_all_thumbnails', default=False,
+        action='store_const', dest='writethumbnail', const='all',
         help='Write all thumbnail image formats to disk')
     thumbnail.add_option(
         '--list-thumbnails',