mirror of
https://github.com/yt-dlp/yt-dlp
synced 2025-01-13 20:01:57 +01:00
Add --thumbnail-id option
This commit is contained in:
parent
2037a6414f
commit
9c99de6d9b
3 changed files with 13 additions and 0 deletions
|
@ -291,6 +291,7 @@ class YoutubeDL:
|
|||
unless writeinfojson is also given
|
||||
writeannotations: Write the video annotations to a .annotations.xml file
|
||||
writethumbnail: Write the thumbnail image to a file
|
||||
thumbnail_id: ID of thumbnail to write
|
||||
allow_playlist_files: Whether to write playlists' description, infojson etc
|
||||
also to disk when using the 'write*' options
|
||||
write_all_thumbnails: Write all thumbnail formats to files
|
||||
|
@ -2605,6 +2606,7 @@ class YoutubeDL:
|
|||
|
||||
def _sort_thumbnails(self, thumbnails):
|
||||
thumbnails.sort(key=lambda t: (
|
||||
t.get('id') == self.params.get('thumbnail_id') if t.get('id') is not None else False,
|
||||
t.get('preference') if t.get('preference') is not None else -1,
|
||||
t.get('width') if t.get('width') is not None else -1,
|
||||
t.get('height') if t.get('height') is not None else -1,
|
||||
|
@ -2630,6 +2632,12 @@ class YoutubeDL:
|
|||
continue
|
||||
yield t
|
||||
|
||||
thumbnail_id = self.params.get('thumbnail_id')
|
||||
if thumbnail_id and thumbnail_id not in [t.get('id') for t in thumbnails]:
|
||||
self.raise_no_formats(info_dict, msg=(
|
||||
'Invalid thumbnail ID specified. '
|
||||
'Use --list-thumbnails to see available IDs'))
|
||||
|
||||
self._sort_thumbnails(thumbnails)
|
||||
for i, t in enumerate(thumbnails):
|
||||
if t.get('id') is None:
|
||||
|
|
|
@ -870,6 +870,7 @@ def parse_options(argv=None):
|
|||
'clean_infojson': opts.clean_infojson,
|
||||
'getcomments': opts.getcomments,
|
||||
'writethumbnail': opts.writethumbnail is True,
|
||||
'thumbnail_id': opts.thumbnail_id,
|
||||
'write_all_thumbnails': opts.writethumbnail == 'all',
|
||||
'writelink': opts.writelink,
|
||||
'writeurllink': opts.writeurllink,
|
||||
|
|
|
@ -1524,6 +1524,10 @@ def create_parser():
|
|||
'--no-write-thumbnail',
|
||||
action='store_false', dest='writethumbnail',
|
||||
help='Do not write thumbnail image to disk (default)')
|
||||
thumbnail.add_option(
|
||||
'--thumbnail-id',
|
||||
metavar='ID', dest='thumbnail_id',
|
||||
help='ID of thumbnail to write to disk')
|
||||
thumbnail.add_option(
|
||||
'--write-all-thumbnails',
|
||||
action='store_const', dest='writethumbnail', const='all',
|
||||
|
|
Loading…
Reference in a new issue