From ac28de56d34a69c52dbc27facb7b432472561963 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Tue, 3 Jun 2025 10:16:38 +0200 Subject: [PATCH] fix playback --- src/features/content/apis/jellyfin.ts | 15 +++++++++++---- src/features/content/service.ts | 4 ++++ src/features/player/player.tsx | 2 +- .../[id]/SampleVideo_1280x720_10mb.mp4 | Bin .../api/content/{ => [type]}/[id]/metadata.ts | 0 .../api/content/{ => [type]}/[id]/stream.ts | 4 ++-- 6 files changed, 18 insertions(+), 7 deletions(-) rename src/routes/api/content/{ => [type]}/[id]/SampleVideo_1280x720_10mb.mp4 (100%) rename src/routes/api/content/{ => [type]}/[id]/metadata.ts (100%) rename src/routes/api/content/{ => [type]}/[id]/stream.ts (91%) diff --git a/src/features/content/apis/jellyfin.ts b/src/features/content/apis/jellyfin.ts index e7e1b74..4adc3bc 100644 --- a/src/features/content/apis/jellyfin.ts +++ b/src/features/content/apis/jellyfin.ts @@ -82,10 +82,17 @@ export const listItemIds = query( } return Object.fromEntries( - data.Items?.map((item) => ([ - `${item.MediaType as any}-${item.ProviderIds!["Tmdb"]!}`, - { jellyfin: item.Id! }, - ])) ?? [] + data.Items?.map((item) => { + const type = { + Movie: 'movie', + Series: 'tv', + }[item.Type as string] ?? 'unknown'; + + return [ + `${type}-${item.ProviderIds!["Tmdb"]!}`, + { jellyfin: item.Id! }, + ]; + }) ?? [] ); }, "jellyfin.listItemIds", diff --git a/src/features/content/service.ts b/src/features/content/service.ts index 025358b..d78fb05 100644 --- a/src/features/content/service.ts +++ b/src/features/content/service.ts @@ -16,8 +16,12 @@ const lookupTable = query(async () => listItemIds(), 'content.lookupTable'); export const getHighlights = () => getContinueWatching(jellyfinUserId); export const getStream = query(async (type: Entry['type'], id: string, range: string) => { + console.log(type, id); + const table = await lookupTable(); + console.log(table, table[`${type}-${id}`].jellyfin); + return getItemStream(table[`${type}-${id}`].jellyfin, range); }, 'content.stream'); diff --git a/src/features/player/player.tsx b/src/features/player/player.tsx index 1eb6b23..037789d 100644 --- a/src/features/player/player.tsx +++ b/src/features/player/player.tsx @@ -90,7 +90,7 @@ export const Player: Component = (props) => {