Bandcamp Scraper
Pricing
from $3.00 / 1,000 results
Bandcamp Scraper
Scrape Bandcamp, the artist-first music marketplace. Search albums, tracks, artists, labels; fetch any album/track/artist page; browse by tag/genre or the discover feed. Returns title, artist, label, release date, tracks, prices, cover art, and audio stream URLs.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(16)
Developer
Crawler Bros
Maintained by CommunityActor stats
16
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Bandcamp — the artist-first music marketplace — for albums, tracks, artists, labels, and discover-feed releases. Returns clean structured data including title, artist, label, release date, track listings, prices, cover art, and audio stream URLs.
What this actor extracts
For every emitted record (album / track / artist / label):
title/name— album title or artist/label nameartistName,artistUrl,artistImageUrllabelName,labelUrl— for releases on a labeldescription,creditsreleaseDate,originalReleaseDate(ISO-8601 UTC)tags— Bandcamp tag list (top 30)coverUrl— high-resolution album / track artwork (f4.bcbits.com/img/aXXXXXXXXXX_10.jpg)imageUrl/artistImageUrl— high-res band photo when available- Pricing:
price,minimumPrice,isFree tracks[]— track number, title, duration (seconds + ISO-8601), audio stream URL, lyricsnumTrackshasAudio,isPreorder- IDs:
albumId,trackId,bandId,artId,featuredTrackId url— canonical bandcamp.com URLrecordType— one ofalbum,track,artist,label
For artist records: discography[] with each release's title, type, URL, cover, release date.
For discover-feed records: genre, location, featuredTrack (sample stream).
Modes
| Mode | Input | Output |
|---|---|---|
byUrl | url or urls[] — any bandcamp.com URL | Auto-routed: album/track/artist/tag |
searchAlbum | query | Albums matching the query |
searchTrack | query | Tracks matching the query |
searchArtist | query | Artists/bands matching the query |
searchBand | query | Alias of searchArtist |
searchLabel | query | Labels matching the query |
byArtist | artistUrl or artistSubdomain | Artist record + discography |
byAlbum | url or artistSubdomain + albumSlug | Full album with tracklist |
byTrack | url or artistSubdomain + trackSlug | Single track record |
byTag | tag (e.g. electronic, lo-fi) | Releases curated under the tag |
byGenre | genre (curated dropdown) | Same as byTag for top-level genres |
discover | genre, sortBy (top/new/rec) | Bandcamp's front-page discover feed |
Filters
| Filter | Description |
|---|---|
minPrice | Drop records with listed price below this (USD). Records without pricing pass. |
maxPrice | Drop records with listed price above this (USD). Records without pricing pass. |
onlyWithAudio | Only emit records that have a streamable audio URL or featured track. |
onlyFree | Only emit name-your-price-zero / free items. |
maxItems | Hard cap on emitted records (1-1000). |
Reliability
- HTTP-first via
httpxwith browser-like headers. - Auto-escalates to Apify proxy on 403 / 429 if
autoEscalateOnBlock=true(default). - Retries on 5xx / 429 with exponential backoff up to 4 attempts.
- Bandcamp's public search and discover APIs (
bcsearch_public_api,discover/3) are used — no auth required.
Cover-art URLs
Album / track artwork is rehosted-style stable: every cover is built from the
canonical art_id against f4.bcbits.com/img/a<art_id>_10.jpg (size 10 = full
quality, ~1500×1500). These URLs are publicly accessible without referer or
cookies.
FAQ
Do I need a Bandcamp account or login? No. All exposed endpoints are public.
Does the actor download the actual audio files?
No — it returns streamUrl (a 128 kbps MP3 preview) per track, but does not
download the bytes. Use the URL with your own client if you need the audio.
Can I scrape a fan/profile page? Not in v1 — fan profiles require login. Open an issue if you need this.
How fresh are the results? The discover feed and search index update every few minutes; album / track pages are server-rendered and reflect what's live on Bandcamp at request time.
Why is the price field missing on some records?
Many Bandcamp items are name-your-price; in that case we emit isFree=true if
the minimum is zero, or only minimumPrice. Free / no-pricing records pass
the minPrice/maxPrice filters.
Limitations
- Fan-only / login-walled pages are not supported.
- Merch-only pages return what the album page exposes (no shipping logic).
- Pre-orders and live streams are emitted with
isPreorder=true.