如何使用Python将专辑封面嵌入到MP3中?

时间:2009-01-03 21:59:30

标签: python mp3 metadata id3 albumart

我一直在使用mutagen来阅读和编写MP3标签,但我希望能够将专辑封面直接嵌入到文件中。

5 个答案:

答案 0 :(得分:36)

以下是将example.png作为专辑封面添加到带有mutagen的example.mp3中的方法:

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error

audio = MP3('example.mp3', ID3=ID3)

# add ID3 tag if it doesn't exist
try:
    audio.add_tags()
except error:
    pass

audio.tags.add(
    APIC(
        encoding=3, # 3 is for utf-8
        mime='image/png', # image/jpeg or image/png
        type=3, # 3 is for the cover image
        desc=u'Cover',
        data=open('example.png').read()
    )
)
audio.save()

答案 1 :(得分:12)

我已经使用eyeD3模块来做这件事。

def update_id3(mp3_file_name, artwork_file_name, artist, item_title):    
    #edit the ID3 tag to add the title, artist, artwork, date, and genre
    tag = eyeD3.Tag()
    tag.link(mp3_file_name)
    tag.setVersion([2,3,0])
    tag.addImage(0x08, artwork_file_name)
    tag.setArtist(artist)
    tag.setDate(localtime().tm_year)
    tag.setTitle(item_title)
    tag.setGenre("Trance")
    tag.update()

答案 2 :(得分:3)

看起来你必须为MP3添加一种特殊类型的帧。请参阅ID3 tags

上的网站

此外,mutagen教程暗示您可以在mutagen中添加ID3标签see

答案 3 :(得分:1)

Possible solution

您是否尝试将图片嵌入到很多文件中?如果是这样,我找到了一个脚本(参见链接),该脚本通过一组目录,查找图像,并将它们嵌入到MP3文件中。当我想在我的(现已不存在的)iPhone上的CoverFlow中实际看到一些东西时,这对我很有用。

答案 4 :(得分:0)

一个很好的小型CLI工具,帮助我检查我在开发id3时所做的事情很多是mid3v2,这是id3v2的mutagen版本。它与Python mutagen库捆绑在一起。这个小工具的来源给了我很多关于如何使用mutagen的答案。