Проблема возникает из-за спецификации ID3 , в которой говорится:
К одному файлу может быть прикреплено несколько изображений, каждое в своем отдельном "API C "кадр, но только один с тем же дескриптором содержимого.
Это означает, что ID3 должен хранить теги API C с использованием ['APIC:Description']
. Кроме того, рекомендуемый способ добавления тегов не напрямую через интерфейс словаря, как в примере в вопросе, а с использованием функции ID3.add()
. Использование объекта ID3 также позволяет нам использовать функцию ID3.getall()
для проверки правильности прикрепления тега.
from mutagen.id3 import APIC, ID3
file = ID3("test.mp3")
print(file.getall('APIC')) # [] (assuming no APIC tags attached)
with open('image.jpg', 'rb') as albumart:
file.add(APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
))
print(file.getall('APIC'))
# [APIC(encoding=<Encoding.UTF16: 1>, mime='image/jpeg', type=<PictureType.COVER_FRONT: 3>, desc='Cover', data=...]
file.save(v2_version=3)