【问题标题】:How to add album art to mp3 file using python 3?如何使用 python 3 将专辑封面添加到 mp3 文件?
【发布时间】:2016-11-25 10:15:47
【问题描述】:

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

【问题讨论】:

    标签: python audio python-3.4 eyed3


    【解决方案1】:

    这是我使用的代码的修改版本。您将需要更改 example.mp3cover.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 是封面艺术的代码。你可以find them all here
    • 图像数据:这是图像的二进制数据。在示例中,我使用 open().read() 加载它。
    • Mime 类型:这是二进制数据的文件类型。如果是jpg 文件,则需要image/jpeg,如果是png 文件,则需要image/png

    【讨论】:

    • 你忘了一行:audiofile.tag.save()
    • @Jordan 你说得对。我已经编辑了代码以添加我在末尾留下的那一行。我把它关掉了,因为我在保存标签之前对标签做了更多的编辑!
    • 如果我想显示来自audiofile,tag,images[0]的图像呢?
    【解决方案2】:

    除了上面的答案,这是我苦苦挣扎了两天

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

    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() 擦除标签信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多