Skip to content
This repository has been archived by the owner on Aug 30, 2023. It is now read-only.

ChrisW-B/lastfm-njs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LastFM-njs

A fully featured interface for Node and the Last.FM api

The full Last.FM API description can be found here

You'll need an API key from Create API Account

You can install using npm install --save lastfm-njs

Then you can set up like so, where username is a default username:

var lastfm = require("lastfm-njs");
var config = require("./config");
var lfm = new lastfm({
    apiKey: config.key,
    apiSecret: config.secret,
    username: config.username
});

If a method requires writing to an account, then you also need password

var lfm = new lastfm({
    apiKey: config.key,
    apiSecret: config.secret,
    username: config.username,
    password: config.password
});

After this, you can use any of the methods

Documentation

All methods support ES6 promises if callback is not included

lastfm.auth_getMobileSession(function(res) {
    if (res.success) {
        lastfm.album_addTags({
            artist: 'Oh Pep!',
            album: 'Living',
            tags: 'peppy,folk,music',
            callback(res) {
                printRes(res);
            }
        });
    }
    else{
        printError(res);
    }
});

is the same as

lastfm.auth_getMobileSession().then(function(result) {
    lastfm.album_addTags({
        artist: 'Oh Pep!',
        album: 'Living',
        tags: 'peppy,folk,music',
    }).then(printRes).catch(printError);
}).catch(printError);

See example files for other examples

Authentication

Last.FM Documentation

A username and password is required

auth_getMobileSession(callback);

where callback is a function which either returns

{
    success: true,
    key: 'XXX'
}

or

{
    success: false,
    error: [lastFMError]
}

Album Methods

Examples

Add Tags*

Last.FM Documentation

album_addTags(opt), where

    opt = {
        artist: artist, //req
        album: album, //req
        tags: tags, //req, max: 10, comma separated list
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Get Info

Last.FM Documentation

album_getInfo(opt), where

    opt = {
        artist: artist, //req unless mbid
        album: album, //req unless mbid
        mbid: mbid, //opt
        lang: lang, //opt
        username: username, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Tags

Last.FM Documentation

album_getTags(opt), where

     opt = {
        artist: artist, //req unless mbid
        album: album, //req unless mbid
        username: username, //req
        mbid: mbid, //opt
        callback(res){}
     }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

album_getTopTags(opt), where

    opt = {
        artist: artist, //req unless mbid
        album: album, //req unless mbid
        mbid: mbid, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Remove Tag*

Last.FM Documentation

album_removeTag(opt), where

    opt = {
        artist: artist, //req
        album: album, //req
        tag: tag, //req, single tag to remove
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Album Search

Last.FM Documentation

album_getTopTags(opt), where

    opt = {
        album: album, //req
        limit: limit, //opt, defaults to 30
        page: page, //opt, defaults to 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Artist

Examples

Add Tags*

Last.FM Documentation

artist_addTags(opt), where

    opt = {
        artist: artist //req
        tags: tags, //req, max 10, comma separated
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Get Correction

Last.FM Documentation

artist_getCorrection(opt), where

    opt = {
        artist: artist, //req
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Info

Last.FM Documentation

artist_getInfo(opt), where

    opt = {
        artist: artist, //req unless mbid
        mbid: mbid, //opt
        username: username, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Similar

Last.FM Documentation

artist_getSimilar(opt), where

    opt = {
        artist: artist, //req unless mbid
        mbid: mbid, //opt
        limit: limit, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Tags

Last.FM Documentation

artist_getTags(opt), where

    opt = {
        artist: artist, //req unless mbid
        user: username, //req
        mbid: mbid, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Albums

Last.FM Documentation

artist_getTopAlbums(opt), where

    opt = {
        artist: artist, //req unless mbid
        mbid: mbid, //opt
        page: page, //opt, default is 50
        limit: limit, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

artist_getTopTags(opt), where

    opt = {
        artist: artist, //req unless mbid
        mbid: mbid, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tracks

Last.FM Documentation

artist_getTopTracks(opt), where

    opt = {
        artist: artist, //req unless mbid
        mbid: mbid, //opt
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Remove Tag*

Last.FM Documentation

artist_removeTag(opt), where

    opt = {
        artist: artist //req
        tag: tag, //req, 1 tag to be removed
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Search

Last.FM Documentation

artist_search(opt), where

    opt = {
        artist: artist, //req unless mbid
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Chart Methods

Examples

Get Top Artists

Last.FM Documentation

chart_getTopArtists(opt), where

    opt = {
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

chart_getTopTags(opt), where

    opt = {
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tracks

Last.FM Documentation

chart_getTopTracks(opt), where

    opt = {
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Geo Methods

Examples

Get Top Artists

Last.FM Documentation

geo_getTopArtists(opt), where

    opt = {
        country: country, //req, ISO 3166-1 format
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tracks

Last.FM Documentation

geo_getTopTracks(opt), where

    opt = {
        country: country, //req, ISO 3166-1 format
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Library Methods

Examples

Get Artists

Last.FM Documentation

library_getArtists(opt), where

    opt = {
        user: username, //req
        page: page, //opt, default is 1
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Tag Methods

Examples

Get Info

Last.FM Documentation

tag_getInfo(opt), where

    opt = {
        tag: tag, //req
        lang: lang, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Similar

Last.FM Documentation

tag_getSimilar(opt), where

    opt = {
        tag: tag, //req
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Albums

Last.FM Documentation

tag_getTopAlbums(opt), where

    opt = {
        tag: tag, //req
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Artists

Last.FM Documentation

tag_getTopArtists(opt), where

    opt = {
        tag: tag, //req
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

tag_getTopTags(opt), where

    opt = {
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tracks

Last.FM Documentation

tag_getTopTracks(opt), where

    opt = {
        tag: tag, //req
        limit: limit, //opt, defaults to 50
        page: page, //opt, defaults to 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Weekly Chart List

Last.FM Documentation

tag_getWeeklyChartList(opt), where

    opt = {
        tag: tag, //req
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Track Methods

Examples

Add Tags*

Last.FM Documentation

track_addTags(opt), where

    opt = {
        artist: artist, //req
        track: track, //req
        tags: tags, //req, max: 10
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Get Correction

Last.FM Documentation

track_getCorrection(opt), where

    opt = {
        artist: artist, //req
        track: track, //req
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Info

Last.FM Documentation

track_getInfo(opt), where

    opt = {
        artist: artist, //req unless mbid
        track: track, //req unless mbid
        mbid: mbid, //opt
        username: username, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Similar

Last.FM Documentation

track_getSimilar(opt), where

    opt = {
        artist: artist, //req unless mbid
        track: track, //req unless mbid
        mbid: mbid, //opt
        limit: limit, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Tags

Last.FM Documentation

track_getTags(opt), where

    opt = {
        artist: artist, //req unless mbid
        track: track, //req unless mbid
        username: username, //req
        mbid: mbid, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

track_getTopTags(opt), where

    opt = {
        artist: artist, //req unless mbid
        track: track, //req unless mbid
        mbid: mbid, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Love Track*

Last.FM Documentation

track_love(opt), where

    opt = {
        artist: artist, //req unless mbid
        track: track, //req unless mbid
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Remove Tag*

Last.FM Documentation

track_removeTag(opt), where

    opt = {
        artist: artist, //req
        track: track, //req
        tag: tag, //req, single tag to remove
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Scrobble*

Last.FM Documentation

track_scrobble(opt), where

    opt = {
        artist: artist[i], //req
        track: track[i], //req
        timestamp: timestamp[i], //req
        album: album[i], //opt
        context: context[i], //opt
        streamId: streamId[i], //opt
        chosenByUser: chosenByUser[i], //opt
        trackNumber: trackNumber[i], //opt
        mbid: mbid[i], //opt
        albumArtist: albumArtist[i], //opt
        duration: duration[i], //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Search

Last.FM Documentation

track_search(opt), where

    opt = {
        track: track, //req
        artist: artist, //opt
        limit: limit, //opt, defaults to 30
        page: page, //opt, defaults to 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Unlove*

Last.FM Documentation

track_unlove(opt), where

    opt = {
        track: track, //req
        artist: artist, //req
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

Update Now Playing*

Last.FM Documentation

track_updateNowPlaying(opt), where

    opt = {
        artist: artist, //req
        track: track, //req
        album: album, //opt
        context: context //opt
        trackNumber: trackNumber, //opt
        mbid: mbid, //opt
        albumArtist: albumArtist, //opt
        duration: duration, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

*Requires Authentication

User Methods

Examples

Get Artist Tracks

Last.FM Documentation

user_getArtistTracks(opt), where

    opt = {
        user: username, //opt
        artist: artist, //req
        startTimestamp: startTimestamp, //opt defaults to all time
        page: page, //opt, default is 1
        endTimestamp: endTimestamp, //opt defaults to all time
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Friends

Last.FM Documentation

user_getFriends(opt), where

    opt = {
        user: username, //opt
        recentTracks: recentTracks, //opt, true|false
        limit: limit, //opt defaults to 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Info

Last.FM Documentation

user_getInfo(opt), where

    opt = {
        user: username, //opt, defaults to init user
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Loved Tracks

Last.FM Documentation

user_getLovedTracks(opt), where

    opt = {
        user: username, //opt
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Personal Tags

Last.FM Documentation

user_getPersonalTags(opt), where

    opt = {
        user: username, //opt
        tag: tag, //req
        taggingtype: artist|album|track, //req
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Recent Tracks

Last.FM Documentation

user_getRecentTracks(opt), where

    opt = {
        user: username, //opt
        from: startTime, //opt
        extended: 0|1, //opt
        to: endTime, //opt
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Albums

Last.FM Documentation

user_getTopAlbums(opt), where

    opt = {
        user: username, //opt
        period: overall|7day|1month|3month|6month|12month, //opt, default is overall
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Artists

Last.FM Documentation

user_getTopArtists(opt), where

    opt = {
        user: username, //opt
        period: overall|7day|1month|3month|6month|12month, //opt, default is overall
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tags

Last.FM Documentation

user_getTopTags(opt), where

    opt = {
        user: username, //opt
        limit: limit, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Top Tracks

Last.FM Documentation

user_getTopTracks(opt), where

    opt = {
        user: username, //opt
        period: overall|7day|1month|3month|6month|12month, //opt, default is overall
        limit: limit, //opt, default is 50
        page: page, //opt, default is 1
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Weekly Album Chart

Last.FM Documentation

user_getWeeklyAlbumChart(opt), where

    opt = {
        user: username, //opt
        from: startdate, //opt, default is overall
        to: enddate, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Weekly Artist Chart

Last.FM Documentation

user_getWeeklyArtistChart(opt), where

    opt = {
        user: username, //opt
        from: startdate, //opt, default is overall
        to: enddate, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Weekly Chart List

Last.FM Documentation

user_getWeeklyChartList(opt), where

    opt = {
        user: username, //opt
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

Get Weekly Track Chart

Last.FM Documentation

user_getWeeklyTrackChart(opt), where

    opt = {
        user: username, //opt
        from: startdate, //opt, default is overall
        to: enddate, //opt, default is 50
        callback(res){}
    }

and callback is a function which receives a single object, containing the Last.FM response and success: false if there was an error

About

A fully featured Last.FM Node.JS API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published