diff --git a/src/renderer/api/subsonic/subsonic-controller.ts b/src/renderer/api/subsonic/subsonic-controller.ts index 2e86ff834..4ac719dfd 100644 --- a/src/renderer/api/subsonic/subsonic-controller.ts +++ b/src/renderer/api/subsonic/subsonic-controller.ts @@ -1056,12 +1056,13 @@ export const SubsonicController: InternalControllerEndpoint = { } const items = - res.body.playlist.entry?.map((song) => + res.body.playlist.entry?.map((song, index) => ssNormalize.song( song, apiClientProps.server, context?.pathReplace, context?.pathReplaceWith, + index, ), ) || []; diff --git a/src/shared/api/subsonic/subsonic-normalize.ts b/src/shared/api/subsonic/subsonic-normalize.ts index 8c4308e9f..d19b9d316 100644 --- a/src/shared/api/subsonic/subsonic-normalize.ts +++ b/src/shared/api/subsonic/subsonic-normalize.ts @@ -133,6 +133,7 @@ const normalizeSong = ( server?: null | ServerListItemWithCredential, pathReplace?: string, pathReplaceWith?: string, + playlistIndex?: number, ): Song => { const participants = getParticipants(item); @@ -189,6 +190,7 @@ const normalizeSong = ( } : null, playCount: item?.playCount || 0, + playlistItemId: playlistIndex !== undefined ? playlistIndex.toString() : undefined, releaseDate: null, releaseYear: item.year || null, sampleRate: item.samplingRate || null,