我正在编写一个脚本,它使用 mutagen 来更新 .mp3 文件中的元数据信息。
评论标签似乎有问题。

到目前为止,这是我的代码

import  mutagen
from mutagen.easyid3 import EasyID3

path = 'song.mp3'
try:
    tag = EasyID3(path)
except:
    tag = mutagen.File(path, easy=True)
    tag.add_tags()

tag['genre'] = 'mygenre'
tag['artist'] = 'myartist'
tag['title'] = 'mytitle'
tag['date'] = '1000'
tag['album'] = 'myalbum'
tag['albumartist'] = 'myalbumartist'
tag['tracknumber'] = 'mytracknumber'
tag['discnumber'] = 'mydiscnumber'
tag.save(v2_version=3)

这对我来说很好用,但是当我添加
tag['comment'] = 'mycomment'

我收到以下错误
mutagen.easyid3.EasyID3KeyError: "'comment' is not a valid key"

最佳答案

>>> import pprint
>>> from mutagen.easyid3 import EasyID3
>>> print EasyID3.valid_keys.keys()
>>> pprint.pprint(EasyID3.valid_keys.keys())
['albumartistsort',
 'musicbrainz_albumstatus',
 'lyricist',
 'musicbrainz_workid',
 'releasecountry',
 'date',
 'albumartist',
 'musicbrainz_albumartistid',
 'composer',
 'catalognumber',
 'encodedby',
 'tracknumber',
 'musicbrainz_albumid',
 'album',
 'asin',
 'musicbrainz_artistid',
 'mood',
 'copyright',
 'author',
 'media',
 'performer',
 'length',
 'acoustid_fingerprint',
 'version',
 'artistsort',
 'titlesort',
 'discsubtitle',
 'website',
 'musicip_fingerprint',
 'conductor',
 'musicbrainz_releasegroupid',
 'compilation',
 'barcode',
 'performer:*',
 'composersort',
 'musicbrainz_discid',
 'musicbrainz_albumtype',
 'genre',
 'isrc',
 'discnumber',
 'musicbrainz_trmid',
 'acoustid_id',
 'replaygain_*_gain',
 'musicip_puid',
 'originaldate',
 'language',
 'artist',
 'title',
 'bpm',
 'musicbrainz_trackid',
 'arranger',
 'albumsort',
 'replaygain_*_peak',
 'organization',
 'musicbrainz_releasetrackid']

看来,确实, comment 不是有效的 key 。不用担心,似乎 you can define your own! 将其与 this document 结合起来,似乎我们需要的 frameid 被称为 COMM 。因此,添加 EasyID3.RegisterTextKey('comment', 'COMM') 应该(可能)让你做你需要的。 :)

关于python - 使用 EasyID3 编写 ID3 标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42231932/

10-12 21:45