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
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
\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