From 87598bd30cbe2779192f9bcc9e6d53cd00506029 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 22 Oct 2024 20:17:56 +0200 Subject: [PATCH] No need for encrypted hls as seperate stream type --- music_assistant/common/models/enums.py | 1 - music_assistant/server/controllers/streams.py | 2 +- music_assistant/server/helpers/audio.py | 4 ++-- music_assistant/server/helpers/playlists.py | 6 +----- music_assistant/server/providers/siriusxm/__init__.py | 2 +- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/music_assistant/common/models/enums.py b/music_assistant/common/models/enums.py index 6dc5b209..8a22c039 100644 --- a/music_assistant/common/models/enums.py +++ b/music_assistant/common/models/enums.py @@ -427,7 +427,6 @@ class StreamType(StrEnum): HTTP = "http" # regular http stream ENCRYPTED_HTTP = "encrypted_http" # encrypted http stream HLS = "hls" # http HLS stream - ENCRYPTED_HLS = "encrypted_hls" # encrypted HLS stream ICY = "icy" # http stream with icy metadata LOCAL_FILE = "local_file" CUSTOM = "custom" diff --git a/music_assistant/server/controllers/streams.py b/music_assistant/server/controllers/streams.py index 63e18823..8b4dd9b3 100644 --- a/music_assistant/server/controllers/streams.py +++ b/music_assistant/server/controllers/streams.py @@ -851,7 +851,7 @@ class StreamsController(CoreController): ) elif streamdetails.stream_type == StreamType.ICY: audio_source = get_icy_radio_stream(self.mass, streamdetails.path, streamdetails) - elif streamdetails.stream_type in (StreamType.HLS, StreamType.ENCRYPTED_HLS): + elif streamdetails.stream_type == StreamType.HLS: substream = await get_hls_substream(self.mass, streamdetails.path) audio_source = substream.path if streamdetails.media_type == MediaType.RADIO: diff --git a/music_assistant/server/helpers/audio.py b/music_assistant/server/helpers/audio.py index e3ff7bd2..b37ca762 100644 --- a/music_assistant/server/helpers/audio.py +++ b/music_assistant/server/helpers/audio.py @@ -515,8 +515,8 @@ async def resolve_radio_stream(mass: MusicAssistant, url: str) -> tuple[str, Str # unfold first url of playlist return await resolve_radio_stream(mass, line.path) raise InvalidDataError("No content found in playlist") - except IsHLSPlaylist as err: - stream_type = StreamType.ENCRYPTED_HLS if err.encrypted else StreamType.HLS + except IsHLSPlaylist: + stream_type = StreamType.HLS except Exception as err: LOGGER.warning("Error while parsing radio URL %s: %s", url, err) diff --git a/music_assistant/server/helpers/playlists.py b/music_assistant/server/helpers/playlists.py index e3cef702..60f69703 100644 --- a/music_assistant/server/helpers/playlists.py +++ b/music_assistant/server/helpers/playlists.py @@ -29,8 +29,6 @@ HLS_CONTENT_TYPES = ( class IsHLSPlaylist(InvalidDataError): """The playlist from an HLS stream and should not be parsed.""" - encrypted: bool = False - @dataclass class PlaylistItem: @@ -167,9 +165,7 @@ async def fetch_playlist( raise InvalidDataError(msg) from err if raise_on_hls and "#EXT-X-VERSION:" in playlist_data or "#EXT-X-STREAM-INF:" in playlist_data: - exc = IsHLSPlaylist() - exc.encrypted = "#EXT-X-KEY:" in playlist_data - raise exc + raise IsHLSPlaylist if url.endswith((".m3u", ".m3u8")): playlist = parse_m3u(playlist_data) diff --git a/music_assistant/server/providers/siriusxm/__init__.py b/music_assistant/server/providers/siriusxm/__init__.py index 6e94331c..fab10ffd 100644 --- a/music_assistant/server/providers/siriusxm/__init__.py +++ b/music_assistant/server/providers/siriusxm/__init__.py @@ -209,7 +209,7 @@ class SiriusXMProvider(MusicProvider): audio_format=AudioFormat( content_type=ContentType.AAC, ), - stream_type=StreamType.ENCRYPTED_HLS, + stream_type=StreamType.HLS, media_type=MediaType.RADIO, path=hls_path, can_seek=False, -- 2.34.1