使用诱变剂 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
中,不如尝试将其保存在 ID3v3
和 ID3v1
中。我在我的程序中使用它,它在 Windows 8
和 OSX
中效果很好。
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 分配专辑插图的主要内容,如果未能解决你的问题,请参考以下文章