使用诱变剂 mac 与 pc 分配专辑插图

Posted

技术标签:

【中文标题】使用诱变剂 mac 与 pc 分配专辑插图【英文标题】:Assign album artwork with mutagen mac vs. pc 【发布时间】:2013-01-16 22:51:04 【问题描述】:

我正在尝试将图片分配给一首歌曲,并且我有一些代码可以在 Mac 上运行,但在 PC 上不行。

从 mutagen.easyid3 导入 EasyID3

从 mutagen.id3 导入 ID3、APIC、错误

从 mutagen.mp3 导入 MP3

def image_assigner(self):

   song = MP3(self.file, ID3=ID3)

   # add ID3 tag if it doesn't exist
   try:
       song.add_tags()
   except error:
       print "we got an image error"
       pass

   song.tags.add(
       APIC(
           encoding=3, 
           mime='image/jpeg', 
           type=2, 
           desc=u'Cover',
           data=open('example.JPG', 'rb').read()
       )
   )
   song.save()

因此,在 Mac 上,此代码有效,但当我在 PC 上尝试时,它不会。任何帮助,将不胜感激。谢谢!

编辑 因此,在做了更多研究之后,我发现这段代码确实将专辑插图保存到 Mac 和 Windows 上的 mp3 文件中,但它保存在 ID3v2.4 中,Mac 可以读取,但 Windows 无法读取,所以它看起来好像没有保存在 Windows 上。似乎在诱变保存功能中使用 v1=2 选项应该将标签保存在 ID3v1 中(请参阅 this 页面上的 10 月 4 日帖子)。如果我更新专辑、艺术家、标题等的标签,它似乎可以工作,但是当我为专辑插图更新时,它仍然没有出现在 Windows 资源管理器中。有没有人在这方面有经验并且可以对此有所了解?谢谢。

【问题讨论】:

您能否添加有关究竟是什么不起作用的信息? 它不会将图像分配给文件。当我在 mac 中执行此操作时,它会将图像分配给 mp3 文件,而当我在 windows 中执行此操作时,它不会。它不会抛出任何错误或任何东西,但它只是没有做它应该做的事情。 有人有什么建议吗? 【参考方案1】:

是的,不幸的是Windows 不支持该版本。与其将其保存在 ID3v1 中,不如尝试将其保存在 ID3v3ID3v1 中。我在我的程序中使用它,它在 Windows 8OSX 中效果很好。

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error, TRCK, TIT2, TPE1, TALB, TDRC, TCON

audio = MP3([PATH_TO_FILE], ID3=ID3)
audio.tags.delete([PATH_TO_FILE], delete_v1=True, delete_v2=True)
audio.tags.add(
    APIC(
        encoding=3,
        mime='image/jpeg',
        type=3,
        desc=u'Cover',
        data=open([PATH_TO_COVER_IMAGE], 'rb').read()
    )
)
audio.save([PATH_TO_FILE], v2_version=3, v1=2)

【讨论】:

以上是关于使用诱变剂 mac 与 pc 分配专辑插图的主要内容,如果未能解决你的问题,请参考以下文章

利用iTunes给MP3添加专辑插图

来自曲目 MPMediaItem 的专辑插图

iOS:从 iPod 库中获取和显示专辑插图

如何在音频文件中添加艺术品,以显示在专辑封面中?

如何在 Win8 C# 应用程序中设置专辑封面?

如何使用诱变剂打印 ID3 标签