如何使用python 3将专辑封面添加到mp3文件?

Lak*_*hor 4 python audio eyed3 python-3.4

我想知道用什么模块将图像设置为特定mp3文件的专辑封面.Mutagen似乎是一个受欢迎的选择,但它似乎不适用于python 3,我找不到任何文档.

Tho*_*ard 9

这是我使用的代码的修改版本.您将要更改example.mp3cover.jpg(也可能是mime类型):

import eyed3

audiofile = eyed3.load('example.mp3')
if (audiofile.tag == None):
    audiofile.initTag()

audiofile.tag.images.set(3, open('cover.jpg','rb').read(), 'image/jpeg')

audiofile.tag.save()
Run Code Online (Sandbox Code Playgroud)

tag.images.set() 有三个参数:

  • 图片类型:这是图像的类型.3是封面艺术的代码.你可以在这里找到它们.
  • 图像数据:这是图像的二进制数据.在这个例子中,我在使用中加载它open().read().
  • Mime类型:这是二进制数据的文件类型.如果它是一个jpg文件,你会想要image/jpeg,如果它是一个png文件,你会想要的image/png.

  • 你忘记了一行:audiofile.tag.save() (4认同)

Rya*_*ooz 9

除了上面的答案之外,这是我这两天苦苦挣扎的内容:

  • 您必须将ID3版本设置为“V2.3”,否则文件图标将不会显示照片。

  • 此外,您还必须为每个 MP3 文件设置不同的专辑名称,否则音乐播放器将为所有音乐文件显示相同的封面图像,即使它们没有封面图像。

  • 您最好也设置一个标题,因为文件名不会显示在音乐播放器中。

  • audio.initTag()如果您愿意的话,使用还可以擦除所有元信息。

audio.initTag()
audio.tag.title = u'Your Title'
audio.tag.album = u'Your Album Name'
audio.tag.images.set(3, open("cover.jpg", 'rb').read(), 'image/jpeg')
audio.tag.save(version=eyed3.id3.ID3_V2_3)
Run Code Online (Sandbox Code Playgroud)