From 97316669ce30e779649b7c5c3ac88e6ca727c747 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 6 Jul 2022 18:10:20 +0200 Subject: [PATCH] parse contenttype --- music_assistant/models/enums.py | 19 +++++++++++-------- music_assistant/music_providers/ytmusic.py | 5 ++++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/music_assistant/models/enums.py b/music_assistant/models/enums.py index 64dd5215..a8fb7a0c 100644 --- a/music_assistant/models/enums.py +++ b/music_assistant/models/enums.py @@ -97,17 +97,20 @@ class ContentType(Enum): def try_parse(cls: "ContentType", string: str) -> "ContentType": """Try to parse ContentType from (url)string/extension.""" tempstr = string.lower() - if "." in tempstr: - tempstr = tempstr.split(".")[-1] - if "," in tempstr: - for val in tempstr.split(","): - try: - return cls(val.strip()) - except ValueError: - pass + if "audio/" in tempstr: + tempstr = tempstr.split("/")[1] + for splitter in (".", ","): + if splitter in tempstr: + for val in tempstr.split(splitter): + try: + return cls(val.strip()) + except ValueError: + pass tempstr = tempstr.split("?")[0] tempstr = tempstr.split("&")[0] + tempstr = tempstr.split(";")[0] + tempstr = tempstr.replace("mp4", "m4a") try: return cls(tempstr) except ValueError: diff --git a/music_assistant/music_providers/ytmusic.py b/music_assistant/music_providers/ytmusic.py index 89f19613..63160ddd 100644 --- a/music_assistant/music_providers/ytmusic.py +++ b/music_assistant/music_providers/ytmusic.py @@ -418,7 +418,10 @@ class YoutubeMusicProvider(MusicProvider): stream_format = await self._parse_stream_format(track_obj) url = await self._parse_stream_url(stream_format=stream_format, item_id=item_id) return StreamDetails( - provider=self.type, item_id=item_id, data=url, content_type=ContentType.M4A + provider=self.type, + item_id=item_id, + data=url, + content_type=ContentType.try_parse(stream_format["mimeType"]), ) async def get_audio_stream( -- 2.34.1