fix: playlist cover art, compilation tag, and year

- ripPlaylist/ripTrackCollection: pre-fetch playlist artwork once, embed in all tracks
- ripTrack: skip per-track album cover when playlist embed is provided
- buildTagMetadata: set COMPILATION=1 and year from playlist publish_date
- beatport: normalize playlistMetadata to include date fields for year extraction
- qobuz: normalize playlist image_rectangle to standard image map
This commit is contained in:
2026-08-05 23:16:37 +02:00
parent eb7854bac3
commit 8590a5b6b6
4 changed files with 85 additions and 17 deletions
+9 -6
View File
@@ -610,12 +610,15 @@ func (c *Client) releaseCollectionMetadata(raw map[string]any, releases []any) m
func playlistMetadata(raw map[string]any, tracks []any) map[string]any {
name := jsonutil.StringFromAny(raw["name"])
return map[string]any{
"id": jsonutil.StringFromAny(raw["id"]),
"name": name,
"title": name,
"tracks_count": firstPositiveInt(jsonutil.IntFromAny(raw["track_count"]), len(tracks)),
"image": imageMap(raw["image"]),
"tracks": map[string]any{"items": tracks},
"id": jsonutil.StringFromAny(raw["id"]),
"name": name,
"title": name,
"tracks_count": firstPositiveInt(jsonutil.IntFromAny(raw["track_count"]), len(tracks)),
"image": imageMap(raw["image"]),
"publish_date": jsonutil.StringFromAny(raw["publish_date"]),
"new_release_date": jsonutil.StringFromAny(raw["new_release_date"]),
"release_date": jsonutil.StringFromAny(raw["release_date"]),
"tracks": map[string]any{"items": tracks},
}
}