enhancement: Raise ProviderUnavailableError in preview if provider is unavailable
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 24 Oct 2024 20:35:22 +0000 (22:35 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 24 Oct 2024 20:35:22 +0000 (22:35 +0200)
music_assistant/server/helpers/audio.py

index abf291f6ea3b0bc95f9356fb94d5aaab9298be25..472f4d7c2f55d7f91ac070a0798140a06e7ee989 100644 (file)
@@ -24,6 +24,7 @@ from music_assistant.common.models.errors import (
     InvalidDataError,
     MediaNotFoundError,
     MusicAssistantError,
+    ProviderUnavailableError,
 )
 from music_assistant.common.models.media_items import AudioFormat, ContentType
 from music_assistant.common.models.streamdetails import StreamDetails
@@ -739,7 +740,8 @@ async def get_preview_stream(
     track_id: str,
 ) -> AsyncGenerator[bytes, None]:
     """Create a 30 seconds preview audioclip for the given streamdetails."""
-    music_prov = mass.get_provider(provider_instance_id_or_domain)
+    if not (music_prov := mass.get_provider(provider_instance_id_or_domain)):
+        raise ProviderUnavailableError
     streamdetails = await music_prov.get_stream_details(track_id)
     async for chunk in get_ffmpeg_stream(
         audio_input=music_prov.get_audio_stream(streamdetails, 30)