无法使用Mutagen将Comment标记保存到MP3文件



我尝试使用诱变剂(最新版本)将Comment标记添加或更新到MP3文件。但却找不到这样做的方法。MP4运行良好。以下是我做的

>>> audio = mutagen.mp3.MP3("/path/to/bill evans/bill evans-(1979)-we will meet again/05  five.mp3")
>>> audio
{'TALB': TALB(encoding=1, text=[u'We Will Meet Again']), 'TDRC': TDRC(encoding=0, text=[u'1979']), 'TIT2': TIT2(encoding=1, text=[u'Five']), u'USLT::eng': USLT(encoding=1, lang='eng', desc=u'', text=u'nhttp://www.lyricsvip.comn nn Powered by LyricsPlugin (http://www.lyricsplugin.com)'), u'POPM:Banshee': POPM(email=u'Banshee', rating=0), u'COMM::eng': COMM(encoding=0, lang='eng', desc=u'', text=[u'last.fm:{piano},{"cool jazz"},{jazz};']), 'TRCK': TRCK(encoding=1, text=[u'5']), 'TPE2': TPE2(encoding=1, text=[u'Bill Evans']), 'TPE1': TPE1(encoding=1, text=[u'Bill Evans']), 'TBPM': TBPM(encoding=0, text=[u'91']), 'TIT1': TIT1(encoding=0, text=[u'Post Bop, Piano']), 'TCON': TCON(encoding=0, text=[u'Jazz']), u'COMM:iTunNORM:eng': COMM(encoding=0, lang='eng', desc=u'iTunNORM', text=[u' 00000206 000001B4 00002053 00002072 0004C496 0004C496 00005C4C 00004F1B 00060D06 00061B72'])}
>>> audio['COMM::eng'] = "mutagen comments"
>>> audio.save()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/mutagen/_file.py", line 111, in save
    return self.tags.save(filename, **kwargs)
  File "/Library/Python/2.7/site-packages/mutagen/id3/__init__.py", line 469, in save
    framedata = self._prepare_framedata(v2_version, v23_sep)
  File "/Library/Python/2.7/site-packages/mutagen/id3/__init__.py", line 415, in _prepare_framedata
    for (key, frame) in frames]
  File "/Library/Python/2.7/site-packages/mutagen/id3/__init__.py", line 545, in __save_frame
    framedata = frame._writeData()
AttributeError: 'str' object has no attribute '_writeData'
>>> 

然而,MP4工作得很好:

>>> file = mutagen.File("/Volumes/USB-MUSIC/MUSIC/2014-10/mysong.m4a")
>>> file
{'xa9alb': [u'u6d77u89d2u5929u6daf'], 'xa9ART': [u'u738bu82b7u857e'], 'xa9grp': [u'Folk, Singer/Songwriter'], '----:com.apple.iTunes:iTunSMPB': [MP4FreeForm(' 00000000 00000840 000003C0 0000000000BECC00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000', AtomDataType.UTF8)], 'xa9nam': [u'u51b7u51b7u7684u590f'], 'xa9gen': [u'C-Pop'], '----:com.apple.iTunes:iTunNORM': [MP4FreeForm(' 000001F5 00000201 0000154D 00001413 0003526E 0003526E 0000542D 00005638 00027E8C 0001422D', AtomDataType.UTF8)]}
>>> file['xa9cmt'] = "Mutagen comments."
>>> file.save("/Volumes/USB-MUSIC/MUSIC/2014-10/mysong.m4a")

没有错误,注释标记已正确更新。

使用mp3,我还尝试了诱变剂id3和诱变剂。File(),所有这些都给了我相同的错误。有没有用mp3保存评论标签的标准方法?

from mutagen.id3 import ID3, COMM
audio = ID3(r"C:UsersAMfile.mp3")
audio.add(COMM(encoding=3, text=u"This is comment!"))
audio.save()

工作起来很有魅力。

最新更新