首页 文章

mutagen:如何在mp3,flac和mp4中检测和嵌入专辑封面

提问于
浏览
10

我希望能够检测音频文件是否嵌入了专辑封面,如果没有,则将专辑封面添加到该文件中 . 我正在使用诱变剂

1)检测专辑封面 . 是否有比这个伪代码更简单的方法:

from mutagen import File
audio = File('music.ext')
test each of audio.pictures, audio['covr'] and audio['APIC:']
    if doesn't raise an exception and isn't None, we found album art

2)我发现这是为了将专辑封面嵌入到mp3文件中:How do you embed album art into an MP3 using Python?

如何将专辑封面嵌入其他格式?

编辑:嵌入mp4

audio = MP4(filename)
data = open(albumart, 'rb').read()

covr = []
if albumart.endswith('png'):
    covr.append(MP4Cover(data, MP4Cover.FORMAT_PNG))
else:
    covr.append(MP4Cover(data, MP4Cover.FORMAT_JPEG))

audio.tags['covr'] = covr
audio.save()

1 回答

  • 5

    嵌入flac:

    from mutagen.flac import File, Picture, FLAC
    
    def add_flac_cover(filename, albumart):
        audio = File(filename)
    
        image = Picture()
        image.type = 3
        if albumart.endswith('png'):
            mime = 'image/png'
        else:
            mime = 'image/jpeg'
        image.desc = 'front cover'
        with open(albumart, 'rb') as f: # better than open(albumart, 'rb').read() ?
            image.data = f.read()
    
        audio.add_picture(image)
        audio.save()
    

    为了完整,检测图片

    def pict_test(audio):
        try: 
            x = audio.pictures
            if x:
                return True
        except Exception:
            pass  
        if 'covr' in audio or 'APIC:' in audio:
            return True
        return False
    

相关问题