diff --git a/allstarr/Controllers/JellyfinController.cs b/allstarr/Controllers/JellyfinController.cs index 3301c00..5a2d507 100644 --- a/allstarr/Controllers/JellyfinController.cs +++ b/allstarr/Controllers/JellyfinController.cs @@ -2290,32 +2290,11 @@ public class JellyfinController : ControllerBase // Generate a deterministic UUID from the external ID var ghostUuid = GenerateUuidFromString(itemId); - // Try to get metadata for the external track to populate the ghost item - var ghostItem = new - { - Name = itemName ?? "External Track", - Id = ghostUuid, - Type = "Audio", - MediaType = "Audio", - RunTimeTicks = 0L, // We don't know duration yet - Artists = new[] { provider }, // Use provider as artist for now - Album = "External", - AlbumArtist = provider, - IsFolder = false, - UserData = new - { - PlaybackPositionTicks = positionTicks ?? 0, - PlayCount = 0, - IsFavorite = false, - Played = false - } - }; - - // Build playback start with ghost item + // Build minimal playback start with just the ghost UUID + // Don't include the Item object - Jellyfin will just track the session without item details var playbackStart = new { ItemId = ghostUuid, - Item = ghostItem, PositionTicks = positionTicks ?? 0, CanSeek = true, IsPaused = false, @@ -2326,7 +2305,7 @@ public class JellyfinController : ControllerBase var playbackJson = JsonSerializer.Serialize(playbackStart); _logger.LogDebug("📤 Sending ghost playback start for external track: {Json}", playbackJson); - // Forward to Jellyfin with ghost item + // Forward to Jellyfin with ghost UUID var (ghostResult, ghostStatusCode) = await _proxyService.PostJsonAsync("Sessions/Playing", playbackJson, Request.Headers); if (ghostStatusCode == 204 || ghostStatusCode == 200)