【问题标题】:Writing ID3 tags using EasyID3使用 EasyID3 编写 ID3 标签
【发布时间】:2017-02-14 16:59:43
【问题描述】:

我正在编写一个脚本,它使用诱变剂来更新 .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"

【问题讨论】:

    标签: python python-3.x metadata mp3 mutagen


    【解决方案1】:
    >>> 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 确实不是一个有效的密钥。不用怕,好像you can define your own! 加上this document,看来我们需要的frameid 就叫COMM。因此,添加EasyID3.RegisterTextKey('comment', 'COMM') 应该(可能)让你做你需要的。 :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2023-04-03
    • 2023-01-16
    • 1970-01-01
    • 2017-08-24
    • 2012-10-22
    • 2017-02-01
    相关资源
    最近更新 更多