2011-09-01 22 views
10

Chciałbym móc wykryć, czy plik audio zawiera osadzoną okładkę albumu, a jeśli nie, dodać okładkę albumu do tego pliku. Używam mutagenówmutagen: jak wykrywać i umieszczać okładki albumów w formacie mp3, flac i mp4

1) Wykrywanie okładek albumów. Czy istnieje prostszy sposób niż ten pseudo kod:

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) znalazłem to do osadzania okładkę albumu do pliku MP3: How do you embed album art into an MP3 using Python?

Jak mogę umieścić okładkę albumu do innych formatów?

EDIT: osadzić 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() 

Odpowiedz

5

HTML flac:

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() 

Dla kompletności wykryć obraz

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 
+2

skąd funkcja Picture() pochodzi? co musisz zaimportować? – Danny

+4

to "od mutagen.flac zaimportuj FLAC, Picture" powinieneś włączyć to do ciebie soulusion – Danny

+0

Jak na razie nie ma '' 'File'''' '' mutagen.flac'''. Czym dokładnie jest '' 'File''', skąd pochodzi? –