aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/postprocessor/embedthumbnail.py
diff options
context:
space:
mode:
authorAlex Merkel <mail@alexmerkel.com>2020-06-21 11:53:22 +0200
committerAlex Merkel <mail@alexmerkel.com>2020-06-21 11:53:22 +0200
commite987deb504565102bb6dc271b074781434a75e5c (patch)
treebddfd3ebfc30441ff91f93cb15286517b7648147 /youtube_dl/postprocessor/embedthumbnail.py
parent777d5a45be81fb1f274c8c558ba1eb24855c66fc (diff)
downloadhypervideo-pre-e987deb504565102bb6dc271b074781434a75e5c.tar.lz
hypervideo-pre-e987deb504565102bb6dc271b074781434a75e5c.tar.xz
hypervideo-pre-e987deb504565102bb6dc271b074781434a75e5c.zip
[postprocessor/embedthumbnail] Add detection for mislabeled WebP files
Diffstat (limited to 'youtube_dl/postprocessor/embedthumbnail.py')
-rw-r--r--youtube_dl/postprocessor/embedthumbnail.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/youtube_dl/postprocessor/embedthumbnail.py b/youtube_dl/postprocessor/embedthumbnail.py
index a5939a7d3..74928be55 100644
--- a/youtube_dl/postprocessor/embedthumbnail.py
+++ b/youtube_dl/postprocessor/embedthumbnail.py
@@ -41,8 +41,19 @@ class EmbedThumbnailPP(FFmpegPostProcessor):
'Skipping embedding the thumbnail because the file is missing.')
return [], info
- if not os.path.splitext(encodeFilename(thumbnail_filename))[1].lower() in ['.jpg', '.png']:
- jpg_thumbnail_filename = thumbnail_filename + ".jpg"
+ #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(thumbnail_filename, 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"
self._downloader.to_screen('[ffmpeg] Converting thumbnail "%s" to JPEG' % thumbnail_filename)