16

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

4

2 回答 2

24

这是我使用的代码的修改版本。您将需要更改example.mp3and cover.jpg(也许还有 mime 类型):

import eyed3
from eyed3.id3.frames import ImageFrame

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

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

audiofile.tag.save()

tag.images.set()接受三个参数:

  • 图片类型:这是图像的类型。3是封面艺术的代码。你可以在这里找到它们
  • 图像数据:这是图像的二进制数据。在示例中,我使用open().read().
  • Mime Type:这是二进制数据的文件类型。如果它是一个jpg文件,你会想要image/jpeg,如果它是一个png文件,你会想要image/png.
于 2016-09-04T12:21:42.880 回答
5

除了上面的答案,这是我两天来一直在努力的事情:

您必须将 ID3 版本设置为“V2.3”,否则文件图标将不会显示照片。您还必须为每个 MP3 文件设置不同的专辑名称,否则音乐播放器会自行运行并为所有音乐文件显示相同的 AlbumCover,即使它们没有任何 AlbumArt

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)

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

audio.initTag()如果您愿意,使用也可以擦除标签信息。

于 2020-04-25T23:37:10.860 回答