def optimize_cover(audio: MP3): apic = retrieve_album_art(audio) if apic: data = apic.data data = io.BytesIO(data) im = Image.open(data) new_data = io.BytesIO() im.save(new_data, optimize=True, format='JPEG') if len(data.getvalue()) - len(new_data.getvalue()) > 0: audio['APIC:'] = mutagen.id3.APIC( encoding=0, # 3 is for utf-8 mime='image/jpeg', # image/jpeg or image/png type=3, # 3 is for the cover image # desc=u'Cover', data=new_data.getvalue() ) audio.save()
def optimize_cover(audio: MP3): apic = retrieve_album_art(audio) if apic: data = apic.data data = io.BytesIO(data) im = Image.open(data) new_data = io.BytesIO() try: im.save(new_data, optimize=True, format='JPEG', quality=95) except OSError: im.convert('RGB').save(new_data, optimize=True, format='JPEG', quality=95) if len(data.getvalue()) - len(new_data.getvalue()) > 0: audio['APIC:'] = mutagen.id3.APIC(encoding=0, mime='image/jpeg', type=3, data=new_data.getvalue()) audio.save()
def remove_covers(audio: MP3): for key in audio.keys(): if key.startswith('APIC'): audio.pop(key) audio.save()