Have ideas to improve npm?Join in the discussion! »

bandcamp-scraper

1.3.0 • Public • Published

bandcamp-scraper

npm version Test Test daily

Bandcamp Logo

A scraper for https://bandcamp.com

The scraper allows you to:

  • search artist, album, track, fan, label
  • get album urls from an artist url
  • get album info from an album url
  • get album products from an album url

Why ?

Because Bandcamp has shut down their public API and don't plan to reopen it.

https://bandcamp.com/developer

Installation

npm i --save bandcamp-scraper

Usage

search(params, callback)

Search any resources that match the given params.query for the current params.page.

  • params Object - query String - page Integer (default 1)
  • callback Function(error, searchResults)

Search Results

An array of resources that have different properties depending on their type property: artist, album, track, fan, or label.

Every resource matches the search-result JSON schema.

Example

var bandcamp = require("bandcamp-scraper");

var params = {
  query: "Coeur de pirate",
  page: 1,
};

bandcamp.search(params, function (error, searchResults) {
  if (error) {
    console.log(error);
  } else {
    console.log(searchResults);
  }
});

View example with output.

getAlbumsWithTag(params, callback)

Search for albums with the tag params.tag for the current params.page.

  • params Object - tag String - page Integer (default 1)
  • callback Function(error, tagResults)

Tag Results

An array of album information. Matches the tag-result JSON schema.

Example

var bandcamp = require("bandcamp-scraper");

var params = {
  tag: "nuwrld",
  page: 1,
};

bandcamp.getAlbumsWithTag(params, function (error, tagResults) {
  if (error) {
    console.log(error);
  } else {
    console.log(tagResults);
  }
});

View example with output.

getAlbumUrls(artistUrl, callback)

Retrieve the album URLs from an artist URL. Please note: for Bandcamp labels you may want to use the getArtistsUrls function to retrieve the list of signed artists first.

  • artistUrl String
  • callback Function(error, albumUrls)

Example

var bandcamp = require("bandcamp-scraper");

var artistUrl = "http://musique.coeurdepirate.com/";
bandcamp.getAlbumUrls(artistUrl, function (error, albumUrls) {
  if (error) {
    console.log(error);
  } else {
    console.log(albumUrls);
  }
});

View example with output.

getAlbumProducts(albumUrl, callback)

Retrieves all the album's products from its URL.

  • albumUrl String
  • callback Function(error, albumProducts)

Album Products

An array of album products that matches the album-product JSON schema.

Example

var bandcamp = require("bandcamp-scraper");

var albumUrl = "http://musique.coeurdepirate.com/album/blonde";
bandcamp.getAlbumProducts(albumUrl, function (error, albumProducts) {
  if (error) {
    console.log(error);
  } else {
    console.log(albumProducts);
  }
});

View example with output.

getAlbumInfo(albumUrl, callback)

Retrieves the album's info from its URL.

  • albumUrl String
  • callback Function(error, albumInfo)

Album Info

An Object that represents the album's info. It matches the album-info JSON schema.

Example

var bandcamp = require("bandcamp-scraper");

var albumUrl = "http://musique.coeurdepirate.com/album/blonde";
bandcamp.getAlbumInfo(albumUrl, function (error, albumInfo) {
  if (error) {
    console.log(error);
  } else {
    console.log(albumInfo);
  }
});

View example with output.

getArtistUrls(labelUrl, callback)

Retrieves an array of artist URLs from a label's URL for further scraping.

  • labelUrl String
  • callback Function(error, albumInfo)

Example

var bandcamp = require("bandcamp-scraper");

var labelUrl = "https://randsrecords.bandcamp.com";
bandcamp.getArtistUrls(labelUrl, function (error, artistsUrls) {
  if (error) {
    console.log(error);
  } else {
    console.log(artistsUrls);
  }
});

View example with output.

Test

Feature tests are run daily, thanks to GitHub Action schedule actions. This way we know if the scraper is ever broken.

Run the test:

npm test

Contributing

Contribution is welcome! Open an issue first.

License

MIT.

Install

npm i bandcamp-scraper

DownloadsWeekly Downloads

111

Version

1.3.0

License

MIT

Unpacked Size

78.8 kB

Total Files

22

Last publish

Collaborators

  • avatar