Bandcamp Scraper avatar

Bandcamp Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Bandcamp Scraper

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

Crawler Bros

Maintained by Community

Actor stats

16

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 name
  • artistName, artistUrl, artistImageUrl
  • labelName, labelUrl — for releases on a label
  • description, credits
  • releaseDate, 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, lyrics
  • numTracks
  • hasAudio, isPreorder
  • IDs: albumId, trackId, bandId, artId, featuredTrackId
  • url — canonical bandcamp.com URL
  • recordType — one of album, 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

ModeInputOutput
byUrlurl or urls[] — any bandcamp.com URLAuto-routed: album/track/artist/tag
searchAlbumqueryAlbums matching the query
searchTrackqueryTracks matching the query
searchArtistqueryArtists/bands matching the query
searchBandqueryAlias of searchArtist
searchLabelqueryLabels matching the query
byArtistartistUrl or artistSubdomainArtist record + discography
byAlbumurl or artistSubdomain + albumSlugFull album with tracklist
byTrackurl or artistSubdomain + trackSlugSingle track record
byTagtag (e.g. electronic, lo-fi)Releases curated under the tag
byGenregenre (curated dropdown)Same as byTag for top-level genres
discovergenre, sortBy (top/new/rec)Bandcamp's front-page discover feed

Filters

FilterDescription
minPriceDrop records with listed price below this (USD). Records without pricing pass.
maxPriceDrop records with listed price above this (USD). Records without pricing pass.
onlyWithAudioOnly emit records that have a streamable audio URL or featured track.
onlyFreeOnly emit name-your-price-zero / free items.
maxItemsHard cap on emitted records (1-1000).

Reliability

  • HTTP-first via httpx with 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.