Repository navigation
Rich artist, album and genre pages (MAD-763) - #53
Merged
Merged
Conversation
The knowledge behind richer artist and album pages. - musicbrainz: Profile reads an artist with their members (someone who left and came back listed once), curated genres and release groups. FindAlbum finds an album's release group by artist and title, ignoring edition notes, with its first release, labels (first edition's first), genres and Wikipedia links. Kind names a release: album, single, ep, compilation or live. - linernotes: Artist and Album write page notes (bio from Wikipedia, "Formed in Leeds in 1994", "Split up in 2012", members with years and roles, genres, release kinds; an album's type, labels and summary), cached in page_notes_cache like songs' notes. - provider.Album gains Kind, from Navidrome's OpenSubsonic release types and Spotify's album_type. - musicgraph: Genre returns a tag's top artists from Last.fm's tag.getTopArtists (a new TagSource), cached in musicgraph_tags, or else the cached artists carrying the tag, kept briefly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s (MAD-766..771)
- stats.ArtistTop tallies an artist's most played songs in a room.
- artistpage fills artist and genre pages through one link: top songs
from the music knowledge layer matched onto the link (one search for
the artist's songs, then a few lookups), else the service's top
tracks, else its search order; songs on others' albums they're
credited on; similar artists found on the link with a few songs each;
a genre's artists, those on the link first; shuffles across albums;
and the same artist on another link.
- New endpoints: GET /links/{id}/artists/{artistId}/about (bio, facts,
members, genres from MusicBrainz then strong tags, kinds of albums the
service doesn't say), /tracks, /related, /shuffle, /elsewhere;
/links/{id}/albums/{albumId}/about; /links/{id}/genre?name=; and
/rooms/{roomId}/artist-plays?name= (stats.ArtistTop).
- AlbumResult gains kind. Server gains Graph, set when a music
knowledge source is on.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Artist page: about line, began/ended facts and genre chips, "Add top 5" and Shuffle, links to the artist on your other services, the Wikipedia bio (tap to expand), top songs, the artist's most played songs in the current room, the discography split into Albums, Singles & EPs, Live and Compilations (other services' albums merged in, tagged), songs they appear on, similar songs, "Fans also like" (artists not on the service open a search), and members. - Genre page (/genre/$linkId?name=): its artists, those on the service first, and songs by them. - Album page: release kind, first release and labels, genre chips, the Wikipedia summary, and more by the artist. - ADR 0013. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 8 (MAD-763): artist pages that feel like a jukebox. They had a picture, a name and an album grid; now they show what's known about the artist, beyond what their service says. Design in ADR 0013.
Server
linernoteswrites artist and album page notes with Wikipedia summaries, cached inpage_notes_cache.provider.Album.Kindcomes from Navidrome's OpenSubsonic release types and Spotify'salbum_type.musicgraph.Genrereturns a tag's top artists from Last.fmtag.getTopArtists, cached inmusicgraph_tags. Without Last.fm, it uses the cached artists that carry the tag.artistpagepackage: top songs matched onto the link (one search, then a few lookups), falling back to the service's top tracks or its search order. Also appearances, similar artists and songs by them, a genre's artists, shuffle across albums, and the same artist on another link.GET /links/{id}/artists/{artistId}/{about,tracks,related,shuffle,elsewhere},/links/{id}/albums/{albumId}/about,/links/{id}/genre?name=,/rooms/{roomId}/artist-plays?name=.AlbumResultgainskind.00022_artist_pages.sql.Web
/genre/$linkId?name=.Testing
go test ./...andgolangci-lintare clean. Web: typecheck, oxlint and vitest (175 tests) pass.artistpageagainst the fake provider, API integration (about, tracks, related, shuffle, elsewhere, album about, room artist plays),stats.ArtistTop, and the web discography helpers.Notes
SYNCPHONY_LASTFM_KEY.🤖 Generated with Claude Code