Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
blackjack4494 committed Aug 31, 2020
2 parents 992083b + fbfeb7c commit 2b5a936
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
22 changes: 22 additions & 0 deletions youtube_dl/postprocessor/embedthumbnail.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
1 change: 1 addition & 0 deletions youtube_dl/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4173,6 +4173,7 @@ def mimetype2ext(mt):
# Per RFC 3003, audio/mpeg can be .mp1, .mp2 or .mp3. Here use .mp3 as
# it's the most popular one
'audio/mpeg': 'mp3',
'audio/x-wav': 'wav',
}.get(mt)
if ext is not None:
return ext
Expand Down

0 comments on commit 2b5a936

Please sign in to comment.