From 11f9d0fe33a595d4fbda52b7d97b874bd077b1c9 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Tue, 13 Aug 2024 13:26:27 +0200 Subject: [PATCH] feat: support audio streams --- utils/jellyfin/media/getStreamUrl.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/utils/jellyfin/media/getStreamUrl.ts b/utils/jellyfin/media/getStreamUrl.ts index fbc6d8bb..5df9f718 100644 --- a/utils/jellyfin/media/getStreamUrl.ts +++ b/utils/jellyfin/media/getStreamUrl.ts @@ -58,8 +58,28 @@ export const getStreamUrl = async ({ } if (mediaSource.SupportsDirectPlay) { - console.log("Using direct stream!"); - return `${api.basePath}/Videos/${itemId}/stream.mp4?playSessionId=${sessionData.PlaySessionId}&mediaSourceId=${itemId}&static=true`; + if (item.MediaType === "Video") { + console.log("Using direct stream for video!"); + return `${api.basePath}/Videos/${itemId}/stream.mp4?playSessionId=${sessionData.PlaySessionId}&mediaSourceId=${itemId}&static=true`; + } else if (item.MediaType === "Audio") { + console.log("Using direct stream for audio!"); + const searchParams = new URLSearchParams({ + UserId: userId, + DeviceId: api.deviceInfo.id, + MaxStreamingBitrate: "140000000", + Container: + "opus,webm|opus,mp3,aac,m4a|aac,m4b|aac,flac,webma,webm|webma,wav,ogg", + TranscodingContainer: "mp4", + TranscodingProtocol: "hls", + AudioCodec: "aac", + api_key: api.accessToken, + PlaySessionId: sessionData.PlaySessionId, + StartTimeTicks: "0", + EnableRedirection: "true", + EnableRemoteMedia: "false", + }); + return `${api.basePath}/Audio/${itemId}/universal?${searchParams.toString()}`; + } } console.log("Using transcoded stream!");