Added seek_position to JellyfinProvider's get_audio_stream function (#1140)
authorMatt Lyons-Wood <lyonzy@fastmail.com>
Sat, 16 Mar 2024 01:09:47 +0000 (12:09 +1100)
committerGitHub <noreply@github.com>
Sat, 16 Mar 2024 01:09:47 +0000 (02:09 +0100)
music_assistant/server/providers/jellyfin/__init__.py

index 0ae59f1ffd2e18b2ef9b41b365c5eae6da52b618..d6997a18766c1c1191b0b68c871efc0b0066127c 100644 (file)
@@ -12,7 +12,6 @@ from typing import TYPE_CHECKING, Any
 if TYPE_CHECKING:\r
     from collections.abc import AsyncGenerator, Callable, Coroutine\r
 \r
-from aiohttp import ClientTimeout\r
 from jellyfin_apiclient_python import JellyfinClient\r
 from jellyfin_apiclient_python.api import API\r
 \r
@@ -53,6 +52,7 @@ from music_assistant.common.models.media_items import Artist as JellyfinArtist
 from music_assistant.common.models.media_items import Playlist as JellyfinPlaylist\r
 from music_assistant.common.models.media_items import Track as JellyfinTrack\r
 from music_assistant.common.models.streamdetails import StreamDetails\r
+from music_assistant.server.helpers.audio import get_http_stream\r
 \r
 if TYPE_CHECKING:\r
     from music_assistant.common.models.provider import ProviderManifest\r
@@ -808,11 +808,11 @@ class JellyfinProvider(MusicProvider):
 \r
         return mime_type\r
 \r
-    async def get_audio_stream(self, streamdetails: StreamDetails) -> AsyncGenerator[bytes, None]:\r
+    async def get_audio_stream(\r
+        self, streamdetails: StreamDetails, seek_position: int = 0\r
+    ) -> AsyncGenerator[bytes, None]:\r
         """Return the audio stream for the provider item."""\r
         url = API.audio_url(self._jellyfin_server.jellyfin, streamdetails.item_id)\r
 \r
-        timeout = ClientTimeout(total=0, connect=30, sock_read=600)\r
-        async with self.mass.http_session.get(url, timeout=timeout) as resp:\r
-            async for chunk in resp.content.iter_any():\r
-                yield chunk\r
+        async for chunk in get_http_stream(self.mass, url, streamdetails, seek_position):\r
+            yield chunk\r