Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
bandcamp-fetch
Advanced tools
A JS library for scraping Bandcamp content; inspired by bandcamp-scraper.
npm i bandcamp-fetch --save
const bcfetch = require('bandcamp-fetch');
bcfetch.discover(...).then( results => {
...
});
Each function returns a Promise which resolves to the fetched data.
discover([params], [options])
Fetches albums through Bandcamp Discover.
params
(optional) - object specifying params to be passed to Bandcamp Discover
All properties are optional. Possible values for each property can be obtained with the getDiscoverOptions()
function.
params
passed to this function will be sanitized with sanitizeDiscoverParams()
. A copy of the sanitized params can obtained through the params
property of the returned result.
options
(optional) - object specifying options to be used when formulating results:
All properties are optional. Image formats can be obtained with the getImageFormats()
function.
getDiscoverOptions()
Fetches Bandcamp Discover options that can be passed back to discover()
.
sanitizeDiscoverParams(params)
Sanitizes params
by setting default values for omitted params and removing irrelevant ones.
You don't have to call this function on params passed to discover()
- they will be sanitized automatically.
getImageFormats([filter])
Fetches the list of image formats used in Bandcamp.
filter
(optional) - 'artist' or 'album'. If specified, narrows down the result to include only formats applicable to the specified value.getImageFormat(idOrName)
Fetches the image format that matches Id or name. If none is found, the result will be null
.
getArtistOrLabelInfo(artistOrLabelUrl, [options])
Fetches information about an artist or label.
artistOrLabelUrl
options
(optional)
getLabelArtists(labelUrl, [options])
Fetches the list of artists belonging to a label.
labelUrl
options
(optional)
getDiscography(artistOrLabelUrl, [options])
Fetches the list of albums and standalone tracks belonging to an artist or label.
artistOrLabelUrl
options
(optional)
getAlbumInfo(albumUrl, [options])
Fetches information about an album.
albumUrl
options
(optional)
getTrackInfo(trackUrl, [options])
Fetches information about a track.
trackUrl
options
(optional)
getAlbumHighlightsByTag(tagUrl, [options])
Fetches album highlights for the tag referred to by tagUrl
. The result is an array of album collections, with each collection corresponding to a highlight category such as 'new and notable' and 'all-time best selling'.
tagUrl
Tag URLs can be obtained with the getTags()
function.
options
(optional)
getTags()
Fetches Bandcamp tags. The result is an object with the following properties:
tags
: non-location tagslocations
: location tagssearch(params, [options])
Searches for params.query
.
params
options
(optional)
getAllShows([options])
Fetches all Bandcamp shows. Each entry in the returned array contains basic information about a show. To retrieve details of a show, pass the url
property of the entry to getShow()
.
options
(optional)
getShow(showUrl, [options])
Get show details for the given showUrl
.
options
(optional)
The library maintains an in-memory cache for two types of resources:
page
- pages fetched during scrapingconstant
- image formats and discover optionsFunctions related to the cache can be called this way:
const bcfetch = require('bandcamp-fetch');
bcfetch.cache.setTTL('page', 500);
bcfetch.cache.setMaxPages(20);
bcfetch.cache.clear('constant');
cache.setTTL(type, TTL)
Sets the expiry time, in seconds, of cache entries for the given resource type.
type
: 'page' or 'constant'TTL
: expiry time in seconds (default: 300
for 'page' and 3600
for 'constant')cache.setMaxPages(maxPages)
Sets the maximum number of pages that can be stored in the cache. A negative value means unlimited. Default: 10
.
cache.clear([type])
Clears the cache entries for the given resource type.
type
(optional): 'page' or 'constant'. If unspecified, clears the entire cache.MIT
FAQs
Scrape Bandcamp content
The npm package bandcamp-fetch receives a total of 17 weekly downloads. As such, bandcamp-fetch popularity was classified as not popular.
We found that bandcamp-fetch demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.