我正在尝试将图片分配给歌曲,并且我有一些可以在 Mac 上运行的代码,但不能在 PC 上运行。
from mutagen.easyid3 import EasyID3
from mutagen.id3 import ID3, APIC, error
from mutagen.mp3 import 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 资源管理器中。有没有人在这方面有经验并且可以对此有所启发?谢谢。
最佳答案
是的,不幸的是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)
关于python - 使用 mutagen mac 与 pc 分配专辑封面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14369366/