Quick Search
Plini
Polyphia
Yvette Young
Initializing...
README.md
Discover connections between musical artists by exploring collaborator networks. Search for any artist and find guest appearances, featured collaborations, and band members through the Discogs music database API. Results stream in real-time as they are discovered.
Features
- Artist search -- type any artist or band name
- Streaming results -- collaborators appear in real-time via Server-Sent Events as releases are processed
- Pause/resume -- results are delivered in batches of 12; pause to browse, resume to load more
- Sorting -- by name (alphabetical), year (latest collaboration), or role
- Relationship categories -- Members, Guests (featured on the artist's tracks), Appearances (tracks where the artist appears on others' releases)
- 7-day cache -- repeated searches return instantly from a local JSON cache
How It Works
- The backend searches Discogs for the artist and fetches up to 100 releases
- For each release, track-level credits are parsed to identify collaborators
- Collaborators are streamed to the frontend via SSE as they are found
- After every 12 new collaborators, processing pauses until the user resumes
- Results are cached to disk for 7 days to avoid redundant API calls
Tech Stack
- Discogs API (
python3-discogs-client) -- artist search, release data, track credits, images - Flask -- SSE streaming endpoint, image proxy routes, cancel/resume API
- Server-Sent Events -- real-time result streaming without WebSockets
- Threading -- non-blocking background processing with queue-based communication
SSE Event Types
| Type | Description |
|---|---|
progress | General progress update with percentage |
artist_info | Found the main artist with profile data |
collaborator | A new collaborator with release info |
paused | Batch complete, waiting for resume |
complete | Search finished with full results |
cached | Results returned from cache |
error | Something went wrong |
API Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /related-artists/search_stream | SSE stream of results |
| POST | /related-artists/cancel | Cancel an active search |
| POST | /related-artists/resume | Resume a paused search |
| GET | /related-artists/fetch_image/<id> | Fetch artist image |
| GET | /related-artists/fetch_release_image/<id> | Fetch album artwork |