pythonimagecovermutagen

Python Mutagen add image cover doesn't work


i try to edit mp3 tags with mutagen. Now i got it working to set tags like title. But APIC still not work.

My code:

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, TT2, TPE1, TRCK, TALB, USLT, error
# ID3 info:
# APIC: picture
# TIT2: title
# TPE1: artist
# TRCK: track number
# TALB: album
# USLT: lyric

pic_file = 'cover.jpg' # pic file
audio = MP3('song.mp3', ID3=ID3)
try:
    audio.add_tags()
except:
    pass
audio.tags.add(APIC(
    encoding=3,
    mime='image/jpeg',
    type=3,
    desc='Cover Picture',
    data=open(pic_file, encoding='ISO-8859-1').read().encode()
))
audio.tags.add(TT2(encoding=3, text='title'))
audio.tags.add(TALB(encoding=3, text='album'))
#audio.tags.add(TPE1(encoding=3, text=item['artist'].decode('utf-8')))
#audio.tags.add(TRCK(encoding=3, text=str(track_num).decode('utf-8')))
#audio.tags.add(USLT(encoding=3, lang=u'eng', desc=u'desc', text=item['lyric'].decode('utf-8')))
audio.save()
ID3('song.mp3').save(v2_version=3)

How can i get it working?

Thanks :)


Solution

  • The solution was:

    imagedata = open(pic_file, 'rb').read()
    
    id3 = ID3('song.mp3')
    id3.add(APIC(3, 'image/jpeg', 3, 'Front cover', imagedata))
    id3.add(TIT2(encoding=3, text='title'))
    
    id3.save(v2_version=3)