From 32667fbc8fd56d21d0699d5267f6fe49f94064ca Mon Sep 17 00:00:00 2001 From: Brian O'Connor Date: Fri, 29 Nov 2024 12:10:02 -0500 Subject: [PATCH] Fix: Reauthenticate with SiriusXM when playing a station (#1789) --- music_assistant/providers/siriusxm/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/music_assistant/providers/siriusxm/__init__.py b/music_assistant/providers/siriusxm/__init__.py index f32b5fbd..36724642 100644 --- a/music_assistant/providers/siriusxm/__init__.py +++ b/music_assistant/providers/siriusxm/__init__.py @@ -215,6 +215,15 @@ class SiriusXMProvider(MusicProvider): self, item_id: str, media_type: MediaType = MediaType.RADIO ) -> StreamDetails: """Get streamdetails for a track/radio.""" + # There's a chance that the SiriusXM auth session has expired + # by the time the user clicks to play a station. The sxm-client + # will attempt to reauthenticate automatically, but this causes + # a delay in streaming, and ffmpeg raises a TimeoutError. + # To prevent this, we're going to explicitly authenticate with + # SiriusXM proactively when a station has been chosen to avoid + # this. + await self._client.authenticate() + hls_path = f"http://{self._base_url}/{item_id}.m3u8" # Keep a reference to the current `StreamDetails` object so that we can -- 2.34.1