【问题标题】:How to extract "Encoded by" from mp3 metadata using Python?如何使用 Python 从 mp3 元数据中提取“编码者”?
【发布时间】:2015-05-22 00:00:23
【问题描述】:

我正在尝试编写一个 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'

【问题讨论】:

    标签: python metadata mp3 eyed3


    【解决方案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
    

    【讨论】:

    • 这看起来很简单。我在eyed3 中发现了它,但否则肯定会使用它。
    • 很高兴听到罗伯托!
    【解决方案2】:

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

    【讨论】:

    • 这并没有明确回答我的问题,但确实给了我一个有用的线索。事实证明,“编码者”字段隐藏在frame_set 对象返回的列表中:audiofile.tag.frame_set['TENC'][0].text
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多