簡體   English   中英

如何使用Python從mp3元數據中提取“編碼人”?

[英]How to extract “Encoded by” from mp3 metadata using Python?

我正在嘗試編寫Python腳本以從某些mp3文件中提取元數據標簽。 具體來說,我希望提取“專輯”和“編碼人”,如果我右鍵單擊文件並查看詳細信息,這些文件將可用:

song_details

我目前正在使用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'

如果您願意放棄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

您要查找的“ encoded by”標簽是ID3 2.3 / 2.4中的TENC 它不彈出嗎?

事實證明,“編碼人”字段埋在frame_set對象返回的列表中: audiofile.tag.frame_set['TENC'][0].text

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM