diff --git a/utils.py b/utils.py index 0899a15..43adee8 100644 --- a/utils.py +++ b/utils.py @@ -3,7 +3,8 @@ import os import re import requests -import imghdr +from io import BytesIO +from PIL import Image, UnidentifiedImageError from mutagen.id3 import ID3, COMM, APIC, TPE1, TALB, TIT2, TDRC, TXXX, UFID, error as ID3Error from mutagen import File, MutagenError from mutagen.mp3 import MP3 @@ -139,13 +140,15 @@ def _embed_album_art(self, file_path, album_art_url): response.raise_for_status() image_data = response.content - image_type = imghdr.what(None, h=image_data) - if not image_type: + try: + with Image.open(BytesIO(image_data)) as image: + mime_type = Image.MIME.get(image.format) + except UnidentifiedImageError: + mime_type = None + if not mime_type: print(f"Could not determine image type for {album_art_url}. Skipping embedding.") return - mime_type = f"image/{image_type}" - if file_path.lower().endswith('.mp3'): audio = MP3(file_path, ID3=ID3) audio.tags.add(