Python Mutagen add image cover doesn't work
Asked Answered
A

1

14

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

Agony answered 8/3, 2017 at 7:8 Comment(3)
Great, just what I needed.Boyle
please post this as an answer, then accept it so that this question no longer shows as unanswered.Doorstop
What should I do when someone answers my questionMeg
A
1

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)
Agony answered 21/4, 2020 at 12:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.