mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[embedthumbnail] Embed if any thumbnail was downloaded, not just the best
This commit is contained in:
		| @@ -3232,7 +3232,7 @@ class YoutubeDL(object): | |||||||
|             thumb_ext = determine_ext(t['url'], 'jpg') |             thumb_ext = determine_ext(t['url'], 'jpg') | ||||||
|             suffix = '%s.' % t['id'] if multiple else '' |             suffix = '%s.' % t['id'] if multiple else '' | ||||||
|             thumb_display_id = '%s ' % t['id'] if multiple else '' |             thumb_display_id = '%s ' % t['id'] if multiple else '' | ||||||
|             t['filepath'] = thumb_filename = replace_extension(filename, suffix + thumb_ext, info_dict.get('ext')) |             thumb_filename = replace_extension(filename, suffix + thumb_ext, info_dict.get('ext')) | ||||||
|  |  | ||||||
|             if not self.params.get('overwrites', True) and os.path.exists(encodeFilename(thumb_filename)): |             if not self.params.get('overwrites', True) and os.path.exists(encodeFilename(thumb_filename)): | ||||||
|                 ret.append(suffix + thumb_ext) |                 ret.append(suffix + thumb_ext) | ||||||
| @@ -3248,6 +3248,7 @@ class YoutubeDL(object): | |||||||
|                     ret.append(suffix + thumb_ext) |                     ret.append(suffix + thumb_ext) | ||||||
|                     self.to_screen('[%s] %s: Writing thumbnail %sto: %s' % |                     self.to_screen('[%s] %s: Writing thumbnail %sto: %s' % | ||||||
|                                    (info_dict['extractor'], info_dict['id'], thumb_display_id, thumb_filename)) |                                    (info_dict['extractor'], info_dict['id'], thumb_display_id, thumb_filename)) | ||||||
|  |                     t['filepath'] = thumb_filename | ||||||
|                 except network_exceptions as err: |                 except network_exceptions as err: | ||||||
|                     self.report_warning('Unable to download thumbnail "%s": %s' % |                     self.report_warning('Unable to download thumbnail "%s": %s' % | ||||||
|                                         (t['url'], error_to_compat_str(err))) |                                         (t['url'], error_to_compat_str(err))) | ||||||
|   | |||||||
| @@ -100,7 +100,7 @@ class PostProcessor(object): | |||||||
|         else: |         else: | ||||||
|             use_compat = False |             use_compat = False | ||||||
|         return cli_configuration_args( |         return cli_configuration_args( | ||||||
|             self._downloader.params.get('postprocessor_args'), |             self.get_param('postprocessor_args'), | ||||||
|             keys, default, use_compat) |             keys, default, use_compat) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -70,16 +70,20 @@ class EmbedThumbnailPP(FFmpegPostProcessor): | |||||||
|             self.to_screen('There aren\'t any thumbnails to embed') |             self.to_screen('There aren\'t any thumbnails to embed') | ||||||
|             return [], info |             return [], info | ||||||
|  |  | ||||||
|         thumbnail_filename = info['thumbnails'][-1]['filepath'] |         idx = next((-(i+1) for i, t in enumerate(info['thumbnails'][::-1]) if t.get('filepath')), None) | ||||||
|  |         if idx is None: | ||||||
|  |             self.to_screen('There are no thumbnails on disk') | ||||||
|  |             return [], info | ||||||
|  |         thumbnail_filename = info['thumbnails'][idx]['filepath'] | ||||||
|         if not os.path.exists(encodeFilename(thumbnail_filename)): |         if not os.path.exists(encodeFilename(thumbnail_filename)): | ||||||
|             self.report_warning('Skipping embedding the thumbnail because the file is missing.') |             self.report_warning('Skipping embedding the thumbnail because the file is missing.') | ||||||
|             return [], info |             return [], info | ||||||
|  |  | ||||||
|         # Correct extension for WebP file with wrong extension (see #25687, #25717) |         # Correct extension for WebP file with wrong extension (see #25687, #25717) | ||||||
|         convertor = FFmpegThumbnailsConvertorPP(self._downloader) |         convertor = FFmpegThumbnailsConvertorPP(self._downloader) | ||||||
|         convertor.fixup_webp(info, -1) |         convertor.fixup_webp(info, idx) | ||||||
|  |  | ||||||
|         original_thumbnail = thumbnail_filename = info['thumbnails'][-1]['filepath'] |         original_thumbnail = thumbnail_filename = info['thumbnails'][idx]['filepath'] | ||||||
|  |  | ||||||
|         # Convert unsupported thumbnail formats to PNG (see #25687, #25717) |         # Convert unsupported thumbnail formats to PNG (see #25687, #25717) | ||||||
|         # Original behavior was to convert to JPG, but since JPG is a lossy |         # Original behavior was to convert to JPG, but since JPG is a lossy | ||||||
| @@ -199,7 +203,7 @@ class EmbedThumbnailPP(FFmpegPostProcessor): | |||||||
|             with open(thumbnail_filename, 'rb') as thumbfile: |             with open(thumbnail_filename, 'rb') as thumbfile: | ||||||
|                 pic.data = thumbfile.read() |                 pic.data = thumbfile.read() | ||||||
|             pic.type = 3  # front cover |             pic.type = 3  # front cover | ||||||
|             res = self._get_thumbnail_resolution(thumbnail_filename, info['thumbnails'][-1]) |             res = self._get_thumbnail_resolution(thumbnail_filename, info['thumbnails'][idx]) | ||||||
|             if res is not None: |             if res is not None: | ||||||
|                 pic.width, pic.height = res |                 pic.width, pic.height = res | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan