您好我一直在尝试制作批量更改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()
此致 奥迪
答案 0 :(得分:0)
当我这样做时,我收到错误,因为tagged
是None
。这就是我所期望的,因为add_tags()
方法并没有返回任何东西。我想你想要更像的东西:
mp3file.add_tags()
mp3file.add(id3.TIT2(encoding=3, text=title))
...
mp3file.save()
它是您要修改和保存的文件对象(实际上是其tags
对象)。
或者,您可以创建一个空的ID3
对象,然后将其保存到指定的路径。
另外,您可能会发现EasyID3类更易于使用,特别是如果您正在考虑使用除MP3以外的任何其他类型的文件中的标签。