Skip to content

A client library for searching songs within EchoNest and retrieving the nearest match

Notifications You must be signed in to change notification settings

PlayNetwork/echonester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Echonester

Simple Echonest search library that provides song search and best match retrieval from the Echonest API

Install

npm install echonester

Usage:

In your code, require the echonester module as follows.

var echonester = require('echonester');

var client = echonester();

client.search('foo fighters', 'breakout', function (err, result) {
  // work with results here...
});

Options:

  • apikey - Your Echonest API key
  • bucket - An array of bucket values
  • searchResultLimit - Max number of results to return from search (defaults to 10)
  • searchUrl - URL of API endpoint (defaults to https://developer.echonest.com/api/v4/song/search)
  • timeout - Timeout for request in milliseconds (defaults to 10000)
var echonester = require('echonester');

var client = echonester({
  apikey : 'YOUR KEY HERE',
  searchResultLimit : 10,
  searchUrl : 'https://developer.echonest.com/api/v4/song/search',
  timeout : 10000
});

Find Best Match

Find the single best match for a search:

client.findBestMatch(artist, title, callback)

var client = (require('echonester')());

client.findBestMatch('beck', 'loser', function (err, result) {
  if (err) {
    console.error(err);
  }

  console.log(result);
});

Which returns the following response:

{ artist_id: 'ARC2XR11187FB5CC95',
  id: 'SOGKSOJ14373B756E5',
  artist_name: 'Beck',
  title: 'Loser' }

Search

Find all matches for a search:

client.search(options, artist, title, callback)

Please note, the options parameter is optional and can be omitted

var
  client = (require('echonester')()),
  options = {
    limit : 10,
    start : 0
  };

client.search(options, 'beck', 'loser', function (err, result) {
  if (err) {
    console.error(err);
  }

  console.log(result);
});

Which returns the following response:

[ { artist_id: 'ARC2XR11187FB5CC95',
    id: 'SOGKSOJ14373B756E5',
    artist_name: 'Beck',
    title: 'Loser' },
  { artist_id: 'ARC2XR11187FB5CC95',
    id: 'SOFWZUR12AF729EC33',
    artist_name: 'Beck',
    title: 'Loser' },
  { artist_id: 'ARC2XR11187FB5CC95',
    id: 'SOQXVQS12B0B8076CA',
    artist_name: 'Beck',
    title: '06 - Loser' },
  { artist_id: 'ARC2XR11187FB5CC95',
    id: 'SOLHXQF137395C36F0',
    artist_name: 'Beck',
    title: 'LOSER (Outro Fade)/(CONTENT!)' },
  { artist_id: 'ARC2XR11187FB5CC95',
    id: 'SOWZWBR13D52FA4048',
    artist_name: 'Beck',
    title: 'Loser [Fatboy Slim Remix]' } ]

About

A client library for searching songs within EchoNest and retrieving the nearest match

Resources

Stars

Watchers

Forks

Packages

No packages published