如何使用 Python 从 mp3 元数据中提取 "Encoded by"?
How to extract "Encoded by" from mp3 metadata using Python?
我正在尝试编写一个 Python 脚本来从一些 mp3 文件中提取元数据标签。具体来说,我希望提取 "Album" 和 "Encoded by",如果我右键单击文件并查看详细信息,它们将可用:
我目前正在使用 eyeD3 库来解析元数据。我正在使用这个库,因为我认为它可以很容易地完成我的任务,但我不喜欢它。
我能够很容易地提取 "Album",但不能提取 "Encoded by" 字段。如果我打印出所有歌曲标签,我看不到任何像我需要的 "Encoded by" 字段。有什么想法吗?
这是我的代码:
import eyed3
def main():
music_file = r'G:\Music Collection-40\Sweeter Things A Compilation 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'
如果您愿意放弃 eyed3,Mutagen 库值得一试。它在 bitbucket (https://bitbucket.org/lazka/mutagen) 上得到积极维护。
下面是从 Mutagen 中的 id3v2 标签中提取 "Encoded By" 字段的示例:
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
您要查找的 "encoded by" 标签是 ID3 2.3/2.4 中的 TENC
。是不是弹出来了?
事实证明 "Encoded by" 字段隐藏在 frame_set
对象返回的列表中:audiofile.tag.frame_set['TENC'][0].text
我正在尝试编写一个 Python 脚本来从一些 mp3 文件中提取元数据标签。具体来说,我希望提取 "Album" 和 "Encoded by",如果我右键单击文件并查看详细信息,它们将可用:
我目前正在使用 eyeD3 库来解析元数据。我正在使用这个库,因为我认为它可以很容易地完成我的任务,但我不喜欢它。
我能够很容易地提取 "Album",但不能提取 "Encoded by" 字段。如果我打印出所有歌曲标签,我看不到任何像我需要的 "Encoded by" 字段。有什么想法吗?
这是我的代码:
import eyed3
def main():
music_file = r'G:\Music Collection-40\Sweeter Things A Compilation 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'
如果您愿意放弃 eyed3,Mutagen 库值得一试。它在 bitbucket (https://bitbucket.org/lazka/mutagen) 上得到积极维护。
下面是从 Mutagen 中的 id3v2 标签中提取 "Encoded By" 字段的示例:
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
您要查找的 "encoded by" 标签是 ID3 2.3/2.4 中的 TENC
。是不是弹出来了?
事实证明 "Encoded by" 字段隐藏在 frame_set
对象返回的列表中:audiofile.tag.frame_set['TENC'][0].text