diff --git a/allstarr/Services/Lyrics/LyricsPrefetchService.cs b/allstarr/Services/Lyrics/LyricsPrefetchService.cs index 1ae1eb3..4045857 100644 --- a/allstarr/Services/Lyrics/LyricsPrefetchService.cs +++ b/allstarr/Services/Lyrics/LyricsPrefetchService.cs @@ -135,7 +135,9 @@ public class LyricsPrefetchService : BackgroundService try { // Check if lyrics are already cached - var cacheKey = $"lyrics:{track.PrimaryArtist}:{track.Title}:{track.Album}:{track.DurationMs / 1000}"; + // Use same cache key format as LrclibService: join all artists with ", " + var artistName = string.Join(", ", track.Artists); + var cacheKey = $"lyrics:{artistName}:{track.Title}:{track.Album}:{track.DurationMs / 1000}"; var existingLyrics = await _cache.GetStringAsync(cacheKey); if (!string.IsNullOrEmpty(existingLyrics)) @@ -154,7 +156,8 @@ public class LyricsPrefetchService : BackgroundService track.PrimaryArtist, track.Title); // Remove any previously cached LRCLib lyrics for this track - await RemoveCachedLyricsAsync(track.PrimaryArtist, track.Title, track.Album, track.DurationMs / 1000); + var artistNameForRemoval = string.Join(", ", track.Artists); + await RemoveCachedLyricsAsync(artistNameForRemoval, track.Title, track.Album, track.DurationMs / 1000); continue; } @@ -172,7 +175,8 @@ public class LyricsPrefetchService : BackgroundService track.PrimaryArtist, track.Title, !string.IsNullOrEmpty(lyrics.SyncedLyrics)); // Save to file cache - await SaveLyricsToFileAsync(track.PrimaryArtist, track.Title, track.Album, track.DurationMs / 1000, lyrics); + var artistNameForSave = string.Join(", ", track.Artists); + await SaveLyricsToFileAsync(artistNameForSave, track.Title, track.Album, track.DurationMs / 1000, lyrics); } else {