Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
A lightweight last.fm scraper. Provides access to last.fm's album, artist, track and search features through a simple, intuitive API. This module does not require an API key.
$ npm install scrapefm
var scrapefm = require('scrapefm');
scrapefm.search('ty segall', function (err, results) {
if (!err) {
results.forEach(function (result) {
console.log(result.type + ': ' + result[result.type]);
});
}
});
// artist: Ty Segall
// artist: Ty Segall Band
// album: Melted
// album: Slaughterhouse
// ...
scrapefm.album('melted ty', function (err, album) {
if (!err && album) {
console.log(album.album + ' by ' + album.artist);
album.tracks.forEach(function (track, i) {
i++;
console.log(i + '. ' + track.track + ' - ' + track.duration + 's');
});
}
});
// Melted by Ty Segall
// 1. Finger - 173s
// 2. Caesar - 183s
// ...
Search last.fm website for an artist, tag, album or track.
terms
is expected to be a string.
options
is an optional object with the following properties:
{
host: 'http://www.last.fm', // which base host to use for scraping
needle: { } // options passed into each needle request
}
done
returns an array of search results (in order of relevance).
Fetch various information about an artist.
terms
is a string of the artist's name.
options
is the same options
described in .search
.
done
returns an object of the following:
{
artist: String,
description: String,
listeners: Number,
scrobbles: Number,
tags: [ String, ... ],
// the top <15 tracks
tracks: [
{
track: String,
listeners: Number
},
...
],
// the top <4 albums
albums: [
{
album: String,
listeners: Number,
art: String
tracks: Number
},
...
],
// the top <6 similar artists
similar: [
{
artist: String,
art: String
},
...
]
}
Fetch various information about a specific album.
terms
can either be a string or an object. If terms
is a string,it's
searched and the first album found is used. If terms
is an object, it should
have the album
and artist
properties.
options
is the same options
described in .search
.
done
returns an object of the following:
{
album: String,
artist: String,
description: String,
released: Date,
label: String,
listeners: Number,
scrobbles: Number,
art: String, // album art URL
tags: [ String, ... ],
tracks: [
{
track: String,
duration: Number, // seconds
listeners: Number
},
...
]
}
Fetch information about a specific track.
terms
can either be a string or an object. If terms
is a string, it's
searched and the first track is used. If terms
is an object,
it should have artist
and track
properties.
options
is the same options
described in .search
.
done
returns an object of the following:
{
track: String,
duration: Number,
description: String,
artist: String,
album: String,
listeners: Number,
scrobbles: Number,
art: String, // album art URL
tags: [ String, ... ],
similar: [
{
artist: String,
track: String,
duration: Number,
listeners: Number
},
...
]
}
MIT
FAQs
A lightweight last.fm scraper (no API key).
The npm package scrapefm receives a total of 3 weekly downloads. As such, scrapefm popularity was classified as not popular.
We found that scrapefm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.