Promote test → main: SongStats research migration (api#635)
Merged
SW
5mo ago+1353+1353+0123456789012345678901234567890123456789-2300-2300-0123456789012345678901234567890123456789
Promotes the merged SongStats research migration (#635) and any other test-branch commits to main.
- /research/* now backed by SongStats (16 endpoints), Chartmetric fully removed.
- playlists returns real placements; rank endpoint removed (SongStats has no rank).
- SRP refactor (one exported function per file); legacy SongStats_API dropped.
Verified on preview: full matrix matches the merged docs (docs#233 + docs#234). See #635 for the verification matrix.
🤖 Generated with Claude Code
Summary by cubic
Promotes the SongStats research migration to main: all /research/* endpoints now use SongStats, and all Chartmetric code/tests are removed. Playlists and metrics return accurate data with longer timeouts for slow provider calls.
-
New Features
- SongStats backs 16 endpoints; accepts provider‑neutral
artist_id/id(not Chartmetric IDs). /research/playlists: returns real placements;statusmaps to SongStats scope;maxDuration=60./research/metrics: fetched directly from SongStats; supportsradioandsxm;maxDuration=60.- Cleaner SRP: one exported function per file plus new SongStats mappers/normalizers.
- SongStats backs 16 endpoints; accepts provider‑neutral
-
Migration
- Set
SONGSTATS_API_KEYin env; remove Chartmetric env vars. - Removed legacy/unsupported routes:
/research/rank,/charts,/cities,/curator,/discover,/festivals,/genres,/instagram-posts,/playlist,/radio,/venues. - Client changes: search no longer accepts
beta/platforms; use provider IDs forartist_id/id; lookup accepts Spotify URL orspotifyId.
- Set