mirror of
https://github.com/yt-dlp/yt-dlp
synced 2024-12-27 21:59:17 +01:00
EmbedThumbnailPP: add support for WAVE and AIFF files
This commit is contained in:
parent
be3579aaf0
commit
300a988ce3
1 changed files with 25 additions and 1 deletions
|
@ -18,10 +18,13 @@ from ..utils import (
|
||||||
)
|
)
|
||||||
|
|
||||||
if mutagen:
|
if mutagen:
|
||||||
|
from mutagen.aiff import AIFF
|
||||||
from mutagen.flac import FLAC, Picture
|
from mutagen.flac import FLAC, Picture
|
||||||
|
from mutagen.id3 import APIC
|
||||||
from mutagen.mp4 import MP4, MP4Cover
|
from mutagen.mp4 import MP4, MP4Cover
|
||||||
from mutagen.oggopus import OggOpus
|
from mutagen.oggopus import OggOpus
|
||||||
from mutagen.oggvorbis import OggVorbis
|
from mutagen.oggvorbis import OggVorbis
|
||||||
|
from mutagen.wave import WAVE
|
||||||
|
|
||||||
|
|
||||||
class EmbedThumbnailPPError(PostProcessingError):
|
class EmbedThumbnailPPError(PostProcessingError):
|
||||||
|
@ -218,9 +221,30 @@ class EmbedThumbnailPP(FFmpegPostProcessor):
|
||||||
f['METADATA_BLOCK_PICTURE'] = base64.b64encode(pic.write()).decode('ascii')
|
f['METADATA_BLOCK_PICTURE'] = base64.b64encode(pic.write()).decode('ascii')
|
||||||
f.save()
|
f.save()
|
||||||
temp_filename = filename
|
temp_filename = filename
|
||||||
|
elif info['ext'] in ['aiff', 'wav']:
|
||||||
|
if not mutagen:
|
||||||
|
raise EmbedThumbnailPPError('module mutagen was not found. Please install using `python3 -m pip install mutagen`')
|
||||||
|
|
||||||
|
self._report_run('mutagen', filename)
|
||||||
|
success = True
|
||||||
|
try:
|
||||||
|
f = {'aiff': AIFF, 'wav': WAVE}[info['ext']](filename)
|
||||||
|
with open(thumbnail_filename, 'rb') as thumbfile:
|
||||||
|
thumb_data = thumbfile.read()
|
||||||
|
f['APIC'] = APIC(
|
||||||
|
encoding=3, # utf-8
|
||||||
|
mime=f'image/{thumbnail_ext.replace("jpg", "jpeg")}',
|
||||||
|
type=3, # front cover
|
||||||
|
desc='Cover (front)',
|
||||||
|
data=thumb_data,
|
||||||
|
)
|
||||||
|
f.save()
|
||||||
|
temp_filename = filename
|
||||||
|
except Exception as err:
|
||||||
|
success = False
|
||||||
|
raise EmbedThumbnailPPError(f'unable to embed using mutagen; {err}')
|
||||||
else:
|
else:
|
||||||
raise EmbedThumbnailPPError('Supported filetypes for thumbnail embedding are: mp3, mkv/mka, ogg/opus/flac, m4a/mp4/m4v/mov')
|
raise EmbedThumbnailPPError('Supported filetypes for thumbnail embedding are: mp3, mkv/mka, ogg/opus/flac, m4a/mp4/m4v/mov, aiff/wav')
|
||||||
|
|
||||||
if success and temp_filename != filename:
|
if success and temp_filename != filename:
|
||||||
os.replace(temp_filename, filename)
|
os.replace(temp_filename, filename)
|
||||||
|
|
Loading…
Reference in a new issue