1

我正在尝试编写一个 Python 脚本来从一些 mp3 文件中提取元数据标签。具体来说,我希望提取“专辑”和“编码者”,如果我右键单击文件并查看详细信息,则可以使用它们:

歌曲详情

我目前正在使用eyeD3库来解析元数据。我正在使用这个库,因为我认为它可以轻松完成我的任务,但我并没有嫁给它。

我能够很容易地提取“专辑”,但不能提取“编码者”字段。如果我打印出所有歌曲标签,我看不到我需要的“编码者”字段之类的东西。请问有什么想法吗?

这是我的代码:

import eyed3

def main():
    music_file = r'G:\Music Collection\54-40\Sweeter Things A Compilation\01 Miss You - 54-40.mp3'

    audiofile = eyed3.load(music_file)
    for attribute_name in dir(audiofile.tag):
        attribute_value = getattr(audiofile.tag, attribute_name)
        print attribute_name, attribute_value

if __name__ == "__main__":
    main()
    print 'done'
4

3 回答 3

1

如果您愿意放弃 eyed3,Mutagen 库值得一试。它在 bitbucket ( https://bitbucket.org/lazka/mutagen ) 上得到积极维护。

这是从 Mutagen 中的 id3v2 标签中提取“编码者”字段的示例:

from mutagen.mp3 import MP3
audio = MP3("poison-and-wine.mp3")
print "Track: " + audio.get("TIT2").text[0]
print "Encoded By: " + audio.get("TENC").text[0]

印刷:

Track Poison & Wine
Encoded By JKuhn
于 2015-05-22T00:32:15.373 回答
1

您要查找的“编码者”标签TENC位于 ID3 2.3/2.4 中。不是弹出来的吗?

于 2015-05-22T00:32:29.400 回答
0

事实证明,“Encoded by”字段隐藏在frame_set对象返回的列表中:audiofile.tag.frame_set['TENC'][0].text

于 2015-05-26T04:36:29.760 回答