Guard against eyed3 misread (#1511)
authorMelvyn Harbour <melharbour@gmail.com>
Tue, 23 Jul 2024 10:00:42 +0000 (11:00 +0100)
committerGitHub <noreply@github.com>
Tue, 23 Jul 2024 10:00:42 +0000 (12:00 +0200)
music_assistant/server/helpers/tags.py

index a0121b45c5c379eb5706bc11068e234b5ba1ebf8..d17b55f686ef9bb1bf10932aae63ef14e0f258cb 100644 (file)
@@ -447,10 +447,11 @@ async def parse_tags(
             # this is actually a bug in ffmpeg/ffprobe which does not expose this tag
             # so we use this as alternative approach for mp3 files
             audiofile = await asyncio.to_thread(eyed3.load, file_path)
-            for uf_id in audiofile.tag.unique_file_ids:
-                if uf_id.owner_id == b"http://musicbrainz.org" and uf_id.uniq_id:
-                    tags.tags["musicbrainzrecordingid"] = uf_id.uniq_id.decode()
-                    break
+            if audiofile.tag is not None:
+                for uf_id in audiofile.tag.unique_file_ids:
+                    if uf_id.owner_id == b"http://musicbrainz.org" and uf_id.uniq_id:
+                        tags.tags["musicbrainzrecordingid"] = uf_id.uniq_id.decode()
+                        break
 
         return tags
     except (KeyError, ValueError, JSONDecodeError, InvalidDataError) as err: