mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[postprocessor/embedthumbnail] Add support for non jpeg/png thumbnails (closes #25687)
This commit is contained in:
		| @@ -41,6 +41,28 @@ class EmbedThumbnailPP(FFmpegPostProcessor): | ||||
|                 'Skipping embedding the thumbnail because the file is missing.') | ||||
|             return [], info | ||||
|  | ||||
|         # Check for mislabeled webp file | ||||
|         with open(encodeFilename(thumbnail_filename), "rb") as f: | ||||
|             b = f.read(16) | ||||
|         if b'\x57\x45\x42\x50' in b:  # Binary for WEBP | ||||
|             [thumbnail_filename_path, thumbnail_filename_extension] = os.path.splitext(thumbnail_filename) | ||||
|             if not thumbnail_filename_extension == ".webp": | ||||
|                 webp_thumbnail_filename = thumbnail_filename_path + ".webp" | ||||
|                 os.rename(encodeFilename(thumbnail_filename), encodeFilename(webp_thumbnail_filename)) | ||||
|                 thumbnail_filename = webp_thumbnail_filename | ||||
|  | ||||
|         # If not a jpg or png thumbnail, convert it to jpg using ffmpeg | ||||
|         if not os.path.splitext(thumbnail_filename)[1].lower() in ['.jpg', '.png']: | ||||
|             jpg_thumbnail_filename = os.path.splitext(thumbnail_filename)[0] + ".jpg" | ||||
|             jpg_thumbnail_filename = os.path.join(os.path.dirname(jpg_thumbnail_filename), os.path.basename(jpg_thumbnail_filename).replace('%', '_'))  # ffmpeg interprets % as image sequence | ||||
|  | ||||
|             self._downloader.to_screen('[ffmpeg] Converting thumbnail "%s" to JPEG' % thumbnail_filename) | ||||
|  | ||||
|             self.run_ffmpeg(thumbnail_filename, jpg_thumbnail_filename, ['-bsf:v', 'mjpeg2jpeg']) | ||||
|  | ||||
|             os.remove(encodeFilename(thumbnail_filename)) | ||||
|             thumbnail_filename = jpg_thumbnail_filename | ||||
|  | ||||
|         if info['ext'] == 'mp3': | ||||
|             options = [ | ||||
|                 '-c', 'copy', '-map', '0', '-map', '1', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alex Merkel
					Alex Merkel