mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-21 20:46:36 -05:00
commit
1e42995635
1 changed files with 22 additions and 0 deletions
|
@ -41,6 +41,28 @@ def run(self, info):
|
|||
'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',
|
||||
|
|
Loading…
Reference in a new issue