Reputation: 173
I am writing a script that uses mutagen to update metadata information in .mp3 files.
There seems to be an issue with the comment tag.
This is my code so far
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)
This works fines for me, but when I add
tag['comment'] = 'mycomment'
I get the following error
mutagen.easyid3.EasyID3KeyError: "'comment' is not a valid key"
Upvotes: 8
Views: 9598
Reputation: 508
>>> 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']
It seems that, indeed, comment
is not a valid key. No fear, it seems that you can define your own! Combining that with this document, it seems that the frameid
we need is called COMM
. Thus, adding a EasyID3.RegisterTextKey('comment', 'COMM')
should (might) let you do what you need. :)
Upvotes: 12