From: Marcel van der Veldt Date: Sat, 8 Jul 2023 11:27:29 +0000 (+0200) Subject: Fix preview stream (#752) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=1abbe2794707b62b0dbe220f8edfce8170ecbf91;p=music-assistant-server.git Fix preview stream (#752) --- diff --git a/music_assistant/server/controllers/media/tracks.py b/music_assistant/server/controllers/media/tracks.py index e7ddf1c8..267d3afb 100644 --- a/music_assistant/server/controllers/media/tracks.py +++ b/music_assistant/server/controllers/media/tracks.py @@ -2,6 +2,7 @@ from __future__ import annotations import asyncio +import urllib.parse from contextlib import suppress from music_assistant.common.helpers.datetime import utc_timestamp @@ -196,7 +197,11 @@ class TracksController(MediaControllerBase[Track]): if preview := track.metadata.preview: return preview # fallback to a preview/sample hosted by our own webserver - return self.mass.streams.get_preview_url(provider_instance_id_or_domain, item_id) + enc_track_id = urllib.parse.quote(item_id) + return ( + f"{self.mass.webserver.base_url}/preview?" + f"provider={provider_instance_id_or_domain}&item_id={enc_track_id}" + ) async def _match(self, db_track: Track) -> None: """Try to find matching track on all providers for the provided (database) track_id. diff --git a/music_assistant/server/controllers/streams.py b/music_assistant/server/controllers/streams.py index 7f576e67..91442b21 100644 --- a/music_assistant/server/controllers/streams.py +++ b/music_assistant/server/controllers/streams.py @@ -401,14 +401,6 @@ class StreamsController(CoreController): url += "?" + urllib.parse.urlencode(query_params) return url - def resolve_preview_url(self, provider_instance_id_or_domain: str, track_id: str) -> str: - """Return url to short preview sample.""" - enc_track_id = urllib.parse.quote(track_id) - return ( - f"{self._server.base_url}/preview?" - f"provider={provider_instance_id_or_domain}&item_id={enc_track_id}" - ) - async def create_multi_client_stream_job( self, queue_id: str, diff --git a/music_assistant/server/controllers/webserver.py b/music_assistant/server/controllers/webserver.py index 24f3ba83..b9d08dc6 100644 --- a/music_assistant/server/controllers/webserver.py +++ b/music_assistant/server/controllers/webserver.py @@ -173,6 +173,8 @@ class WebserverController(CoreController): routes.append(("GET", "/ws", self._handle_ws_client)) # also host the image proxy on the webserver routes.append(("GET", "/imageproxy", self.mass.metadata.handle_imageproxy)) + # also host the audio preview service + routes.append(("GET", "/preview", self.mass.streams.serve_preview_stream)) # start the webserver await self._server.setup( bind_ip=config.get_value(CONF_BIND_IP),