Mutagen: как обнаружить и внедрить обложку альбомов в mp3, flac и mp4
Я хотел бы узнать, имеет ли аудиофайл встроенное обложку альбомов, и если нет, добавьте обложку альбома в этот файл. Я использую мутаген
1) Обнаружение обложек альбомов. Существует ли более простой метод, чем этот псевдокод:
from mutagen import File
audio = File('music.ext')
test each of audio.pictures, audio['covr'] and audio['APIC:']
if doesn't raise an exception and isn't None, we found album art
2) Я нашел это для встраивания обложек альбомов в mp3 файл:
Как вы вставляете обложку альбомов в MP3 с помощью Python?
Как вставить обложку альбомов в другие форматы?
EDIT: встроить mp4
audio = MP4(filename)
data = open(albumart, 'rb').read()
covr = []
if albumart.endswith('png'):
covr.append(MP4Cover(data, MP4Cover.FORMAT_PNG))
else:
covr.append(MP4Cover(data, MP4Cover.FORMAT_JPEG))
audio.tags['covr'] = covr
audio.save()
Ответы
Ответ 1
Вставить флак:
from mutagen.flac import File, Picture, FLAC
def add_flac_cover(filename, albumart):
audio = File(filename)
image = Picture()
image.type = 3
if albumart.endswith('png'):
mime = 'image/png'
else:
mime = 'image/jpeg'
image.desc = 'front cover'
with open(albumart, 'rb') as f: # better than open(albumart, 'rb').read() ?
image.data = f.read()
audio.add_picture(image)
audio.save()
Для полноты, обнаружения изображения
def pict_test(audio):
try:
x = audio.pictures
if x:
return True
except Exception:
pass
if 'covr' in audio or 'APIC:' in audio:
return True
return False