1.2 KiB
1.2 KiB
Spotify Integration
Credentials
- Preferred: Manage in
/admin/settings(persisted in DB; no restart required) - Env fallback:
SPOTIFY_CLIENT_ID,SPOTIFY_CLIENT_SECRET
API Client
src/Service/SpotifyClient.php- Client Credentials token fetch with caching
searchAlbums(q, limit)— album search endpointgetAlbum(id)/getAlbums([ids])— metadata fetchgetAlbumWithTracks(id)— metadata + hydrated tracklistgetAlbumTracks(id)— raw paginated tracks (when needed)
Caching & Rate Limits
- Access tokens are cached until expiry to avoid unnecessary auth calls.
- Downstream requests should be mindful of Spotify rate limits; user actions are debounced in the UI and server calls are focused on album/track data needed by the current page.
Advanced search syntax
- Fielded queries are composed as:
album:"...",artist:"...",year:YYYYoryear:YYYY-YYYY- Optional free text is appended to the query
- Examples:
album:"in rainbows" artist:"radiohead"year:1999-2004 post rock
Admin settings
- Update credentials in
/admin/settings - Settings are stored in the database;
APP_ENVreload or container restart is not required