From 6a39184b0181f4bf94b925357b1cee3f2a589c14 Mon Sep 17 00:00:00 2001 From: Josh Patra Date: Tue, 10 Feb 2026 11:55:07 -0500 Subject: [PATCH] fix: add missing Jellyfin fields to external tracks Added PlaylistItemId, DateCreated, ParentId, Tags, People, and SortName fields to match real Jellyfin item structure for Spotify playlist tracks. --- allstarr/Services/Jellyfin/JellyfinResponseBuilder.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/allstarr/Services/Jellyfin/JellyfinResponseBuilder.cs b/allstarr/Services/Jellyfin/JellyfinResponseBuilder.cs index a621469..fc793d9 100644 --- a/allstarr/Services/Jellyfin/JellyfinResponseBuilder.cs +++ b/allstarr/Services/Jellyfin/JellyfinResponseBuilder.cs @@ -263,9 +263,11 @@ public class JellyfinResponseBuilder ["Name"] = songTitle, ["ServerId"] = "allstarr", ["Id"] = song.Id, + ["PlaylistItemId"] = song.Id, // Required for playlist items ["HasLyrics"] = false, // Could be enhanced to check if lyrics exist ["Container"] = "flac", ["PremiereDate"] = song.Year.HasValue ? $"{song.Year}-01-01T00:00:00.0000000Z" : null, + ["DateCreated"] = song.Year.HasValue ? $"{song.Year}-01-01T00:00:00.0000000Z" : DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"), ["RunTimeTicks"] = (song.Duration ?? 0) * TimeSpan.TicksPerSecond, ["ProductionYear"] = song.Year, ["IndexNumber"] = song.Track, @@ -273,6 +275,7 @@ public class JellyfinResponseBuilder ["IsFolder"] = false, ["Type"] = "Audio", ["ChannelId"] = (object?)null, + ["ParentId"] = song.AlbumId, ["Genres"] = !string.IsNullOrEmpty(song.Genre) ? new[] { song.Genre } : new string[0], @@ -286,6 +289,9 @@ public class JellyfinResponseBuilder } } : new Dictionary[0], + ["Tags"] = new string[0], + ["People"] = new object[0], + ["SortName"] = songTitle, ["ParentLogoItemId"] = song.AlbumId, ["ParentBackdropItemId"] = song.AlbumId, ["ParentBackdropImageTags"] = new string[0],