1 回答

TA贡献1803条经验 获得超3个赞
MP3类是ID3类的一种,正如本教程所说,它具有高度结构化,由于需要跟踪其元数据而不能简单地写入。我怀疑这是导致错误的原因-当您尝试保存或打印audio对象时,代码期望每个键都指向某个对象,但看到的只是一个简单的字符串。
相反,您需要指定要使用EasyMP3类,以便可以根据需要编辑密钥。该EasyMP3课程将字符串自动转换为找到适合的对象。来自文档的示例:
from mutagen.mp3 import EasyMP3 as MP3
audio = MP3("example.mp3")
audio["title"] = "An example"
audio.pprint()
但是,您只能编辑某些键。要获取可编辑的有效键的列表,请使用以下命令:
from mutagen.easyid3 import EasyID3
print '\n'.join(EasyID3.valid_keys.keys())
编辑:
免责声明:所有这些都未经测试,可能需要调整或调试。
要编辑EasyMP3中未包含的标签,您可以参考此图表并使用该ID3v2.3列下的4个字母的标签。
例如,要设置专辑艺术家,图表会指出4个字母的代码为TPE2。然后,您可以尝试:
import mutagen.id3 as id3
import mutagen.mp3 as mp3
audio = mp3.MP3("example.mp3")
audio.add(id3.TPE2(encoding=3, text=u"An example"))
audio.save()
但是,我不确定100%该encoding参数的作用,也无法找到有关此参数的任何文档,因此您的工作量可能会有所不同。
添加回答
举报