Mutagen 的 save() 不会设置或更改 MP3 文件的封面艺术



我正在尝试使用以下方式使用Mutagen更改一堆MP3文件的ID3(版本2.3(封面:

from mutagen.mp3 import MP3
from mutagen.id3 import APIC
file = MP3(filename)
with open('Label.jpg', 'rb') as albumart:
file.tags['APIC'] = APIC(
encoding=3,
mime='image/jpeg',
type=3, desc=u'Cover',
data=albumart.read()
)
file.save(v2_version=3)

但是,文件(或至少是APIC标记(保持不变,通过读回标记进行检查。但是,在系统文件资源管理器中,该文件确实显示更新的Date modified。如何让穆塔根正确更新封面?

由于ID3规范指出:

一个文件可能附加了几张图片,每张图片都在各自的"APIC"框架中,但只有一张具有相同的内容描述符。

这意味着ID3必须使用['APIC:Description']存储APIC标签。此外,推荐的添加标签的方法不是像问题中的示例那样直接通过字典界面,而是使用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)

我需要将封面设置为"APIC:"标签,而不是"APIC"标签(我想这就是指定IDv2.3的方式(。

最新更新