0

您好,我一直在尝试做一些可以批量更改 ID3 标签的东西,而 Mutagen 似乎是可行的方法,但我无法弄清楚为什么标签会保持不变。我没有收到任何错误,只是在我打开 MP3 文件的属性时没有保存详细信息。

def changetags(path, albumart, album, title, artist):
    mp3file = mp3.MP3(path)

    tagged = mp3file.add_tags()

    tagged.add(id3.TIT2(encoding=3, text=title))
    tagged.add(id3.TALB(encoding=3, text=album))
    tagged.add(id3.TPE1(encoding=3, text=artist))
    if albumart != None:
        tagged.add(id3.APIC(encoding=3, mime='image/png', type=3, desc=u'Cover', data=urllib.urlopen(albumart)))
    tagged.save()

问候, 奥迪

4

1 回答 1

0

当我这样做时,我得到一个错误,因为taggedis None。这就是我所期望的,因为该add_tags()方法不返回任何内容。我认为您想要更多类似的东西:

mp3file.add_tags()
mp3file.add(id3.TIT2(encoding=3, text=title))
...
mp3file.save()

tags它是您要修改和保存的文件对象(或实际上是它的对象)。

或者,您可以只创建一个空ID3对象,然后将其保存到指定路径。

附带说明一下,您可能会发现 EasyID3 类更易于使用,尤其是当您考虑查看除 MP3 之外的任何其他类型文件中的标签时。

于 2016-02-21T18:04:16.803 回答