music-assistant-server

Branch:dev-lidarr-plugin

Commit Details

Bandcamp Rate Limiting (#3069)

feat(bandcamp): add rate limiting and retry logic to all API methods

- Upgrade bandcamp-async-api to 0.0.7
- Add BandcampRateLimitError import and handling throughout
- Configure ThrottlerManager with 50 req/10s rate limit and 10 retry attempts
- Add @throttle_with_retries decorator to: get_artist, get_album, get_track,
  get_album_tracks, get_artist_albums, get_artist_toptracks
- Add throttler.acquire() context manager to async generator methods:
  get_library_artists, get_library_albums
- Add proper BandcampRateLimitError handling converting to
  ResourceTemporarilyUnavailable with backoff_time
- Remove redundant exception handlers from get_library_tracks,
  get_stream_details, get_artist_toptracks (called methods handle exceptions)
- Update tests for new default_retry_after parameter
Forgejo

Author

Alexey ALERT Rubashёff<[email protected]>
February 2, 2026 at 09:11 AM UTC

Committer

February 2, 2026 at 09:11 AM UTC
66additions
24deletions
4files changed

Parent commits

Changes

4 files
+66-24

Changed Files (4)

music_assistant/providers/bandcamp/
tests/providers/bandcamp/
music_assistant/providers/bandcamp/__init__.py
+60-22
music_assistant/providers/bandcamp/manifest.json
requirements_all.txt
tests/providers/bandcamp/test_provider.py
+6-2