Package Exports
- bandcamp-scraper
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bandcamp-scraper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
bandcamp-scraper
A scraper for https://bandcamp.com
The scraper allow 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 there public API and don't plan to-reopen it.
https://bandcamp.com/developer
Installation
npm i --save bandcamp-scraperUsage
search(params, callback)
Search any resources that matches 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);
}
});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);
}
});getAlbumUrls(artistUrl, callback)
Retrieve the album URLs from an artist URL.
- 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);
}
});getAlbumProducts(albumUrl, callback)
Retrieves all the album's products of from its URL.
- albumUrl String
- callback Function(error, albumProducts)
Album Products
An array 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);
}
});getAlbumInfo(albumUrl, callback)
Retrieves the album's info of 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);
}
});Test
Feature tests are run daily, thank to Travis Ci new feature CRON Jobs. This way we know if the scraper is ever broken.
Run the test:
npm testContributing
Contribution is welcome! Open an issue first.
License
MIT.
