首页 文章

使用mutagen mac与pc分配专辑图片

提问于
浏览
1

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

来自mutagen.easyid3导入EasyID3来自mutagen.id3导入ID3,APIC,错误来自mutagen.mp3导入MP3 def image_assigner(self):song = MP3(self.file,ID3 = ID3)

#添加ID3标记(如果不存在)
尝试:
song.add_tags()
除了错误:
打印“我们得到了图像错误”
通过

song.tags.add(
APIC(
编码= 3,
MIME = '图像/ JPEG',
类型= 2,
DESC = u'Cover”,
data = open('example.JPG','rb') . read()


song.save()

所以在Mac上,这段代码可以工作,但是当我在我的电脑上试用它时,它不会 . 任何帮助,将不胜感激 . 谢谢!

编辑所以,在做了一些研究之后,我发现这段代码确实将专辑封面保存到Mac和Windows上的mp3文件中,但它将它保存在Mac可以读取的ID3v2.4中,但Windows可以't read, so it appeared like it didn't将其保存在Windows上 . 似乎在mutagen保存功能中使用v1 = 2选项应该将标签保存在ID3v1中(参见this页上的10月4日帖子) . 如果我更新专辑,艺术家, Headers 等的标签似乎有效,但是当我为专辑封面时,它仍然没有出现在Windows资源管理器中 . 有没有人有这方面的经验,可以对此有所了解?谢谢 .

1 回答

  • 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)
    

相关问题