32

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

4

5 回答 5

38

以下是如何使用诱变剂将 example.png 作为专辑封面添加到 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()
于 2009-12-20T23:02:50.517 回答
13

我已经使用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()
于 2009-06-16T17:13:44.330 回答
3

看起来您必须在 MP3 中添加一种特殊类型的帧。在ID3 标签上查看网站

此外,诱变剂教程暗示您可以在诱变剂中添加 ID3 标签,请参阅

于 2009-01-03T22:20:00.800 回答
1

可能的解决方案

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

于 2010-10-17T03:31:38.283 回答
0

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

于 2009-12-25T20:49:06.147 回答