diff --git a/packages/api/src/services/plex.ts b/packages/api/src/services/plex.ts index 3116f30..473d528 100644 --- a/packages/api/src/services/plex.ts +++ b/packages/api/src/services/plex.ts @@ -29,6 +29,7 @@ plexRouter.get('/listening', async (c) => { device: session.Player.product, state: session.Player.state, progress: session.viewOffset, + duration: session.Media[0].duration, albumName: session.parentTitle, albumArtist: session.originalTitle || session.grandparentTitle, albumYear: session.parentYear, diff --git a/packages/shared/src/plex.ts b/packages/shared/src/plex.ts index 8c3a21e..83315ac 100644 --- a/packages/shared/src/plex.ts +++ b/packages/shared/src/plex.ts @@ -18,6 +18,22 @@ export interface RawPlexResponse { grandparentTitle?: string; // ms into track viewOffset: number; + Media: { + audioCodec: string; + duration: number; + Part: { + container: string; + file: string; + duration: number; + Stream: { + audioChannelLayout: 'stereo' | 'mono'; + // Pre-formated Codec string + displayTitle: string; + // Pre-formated Codec string + extendedDisplayTitle: string; + }[]; + }[]; + }[]; User: { title: string; }; @@ -37,6 +53,7 @@ export interface PlexNowListening { device: string; state: PlayerState; progress: number; + duration: number; albumName: string; albumArtist?: string; albumYear?: number;