Bandcamp Rate Limiting (#3069)
authorAlexey ALERT Rubashёff <alexey.rubasheff@gmail.com>
Mon, 2 Feb 2026 09:11:40 +0000 (11:11 +0200)
committerGitHub <noreply@github.com>
Mon, 2 Feb 2026 09:11:40 +0000 (10:11 +0100)
commit1c1e0edc28c35df3490656494314d48a95790c8d
tree80d528ca3757f8ddb4ef1add296323b4f4ccd963
parent0bb43babba3654bde582a9466e646d9a5ad945e5
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
music_assistant/providers/bandcamp/__init__.py
music_assistant/providers/bandcamp/manifest.json
requirements_all.txt
tests/providers/bandcamp/test_provider.py