refactor: getstreamurl

This commit is contained in:
sarendsen
2025-05-02 19:02:14 +02:00
parent 0b574cc047
commit f4750e781d

View File

@@ -44,84 +44,43 @@ export const getStreamUrl = async ({
let mediaSource: MediaSourceInfo | undefined;
let sessionId: string | null | undefined;
if (item.Type === "Program") {
console.log("Item is of type program...");
const res0 = await getMediaInfoApi(api).getPlaybackInfo(
{
userId,
itemId: item.ChannelId!,
},
{
method: "POST",
params: {
startTimeTicks: 0,
isPlayback: true,
autoOpenLiveStream: true,
maxStreamingBitrate,
audioStreamIndex,
},
data: {
deviceProfile,
},
},
);
const transcodeUrl = res0.data.MediaSources?.[0].TranscodingUrl;
sessionId = res0.data.PlaySessionId || null;
if (transcodeUrl) {
return {
url: `${api.basePath}${transcodeUrl}`,
sessionId,
mediaSource: res0.data.MediaSources?.[0],
};
}
}
const itemId = item.Id;
const res2 = await getMediaInfoApi(api).getPlaybackInfo(
const res = await getMediaInfoApi(api).getPlaybackInfo(
{
itemId: item.Id!,
},
{
method: "POST",
data: {
deviceProfile,
userId,
maxStreamingBitrate,
startTimeTicks,
autoOpenLiveStream: true,
mediaSourceId,
audioStreamIndex,
deviceProfile,
subtitleStreamIndex,
startTimeTicks,
isPlayback: true,
autoOpenLiveStream: true,
maxStreamingBitrate,
audioStreamIndex,
mediaSourceId,
},
},
);
if (res2.status !== 200) {
console.error("Error getting playback info:", res2.status, res2.statusText);
if (res.status !== 200) {
console.error("Error getting playback info:", res.status, res.statusText);
}
sessionId = res2.data.PlaySessionId || null;
sessionId = res.data.PlaySessionId || null;
mediaSource = res.data.MediaSources[0];
const transcodeUrl = mediaSource.TranscodingUrl;
mediaSource = res2.data.MediaSources?.find(
(source: MediaSourceInfo) => source.Id === mediaSourceId,
);
if (item.MediaType === "Video") {
if (mediaSource?.TranscodingUrl) {
const urlObj = new URL(api.basePath + mediaSource?.TranscodingUrl); // Create a URL object
// Get the updated URL
const transcodeUrl = urlObj.toString();
console.log("Video has transcoding URL:", `${transcodeUrl}`);
if (transcodeUrl) {
console.log("Video is being transcoded:", transcodeUrl);
return {
url: transcodeUrl,
sessionId: sessionId,
url: `${api.basePath}${transcodeUrl}`,
sessionId,
mediaSource,
};
}
const searchParams = new URLSearchParams({
playSessionId: sessionData?.PlaySessionId || "",
mediaSourceId: mediaSource?.Id || "",
@@ -137,7 +96,7 @@ export const getStreamUrl = async ({
const directPlayUrl = `${
api.basePath
}/Videos/${itemId}/stream.mp4?${searchParams.toString()}`;
}/Videos/${item.Id}/stream.mp4?${searchParams.toString()}`;
console.log("Video is being direct played:", directPlayUrl);
@@ -146,9 +105,4 @@ export const getStreamUrl = async ({
sessionId: sessionId,
mediaSource,
};
}
Alert.alert("Error", "Could not play this item");
return null;
};