мутаген: как определить и вставить обложку альбома в 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?

Как встроить обложку альбома в другие форматы?

РЕДАКТИРОВАТЬ: вставить 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()   

person foosion    schedule 01.09.2011    source источник


Ответы (1)


Вставить флак:

from mutagen import File
from mutagen.flac import 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
person foosion    schedule 02.09.2011
comment
откуда взялась функция Picture()? что вам нужно импортировать? - person Danny; 11.02.2012
comment
это из mutagen.flac, импортируйте FLAC, изображение, которое вы должны включить в свою душу - person Danny; 11.02.2012
comment
На данный момент нет File в mutagen.flac. Что такое File, откуда оно взялось? - person imrek; 18.03.2017
comment
Большинство моих файлов имеют формат M4A и содержат изображения с более низким разрешением 250x250, которые я хотел бы увеличить до 500x500. Я не уверен, что это правильное решение? - person WinEunuuchs2Unix; 10.11.2020