Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including node-spotify with all npm packages installed. Try it out:

var nodeSpotify = require("node-spotify")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

node-spotify v0.8.2

A wrapper for libspotify


Build Status node-spotify wraps the C library libspotify for usage with NodeJS.

A webpage for the project is here:

I'm working toward version 1.0.0 which is not meant to provide everything libspotify offers. But I intend to wrap all libspotify types and provide methods to access them where possible. Options and convenience features my lack, though.


  • libspotify must be installed
    • Linux users get it from here
    • OSX users can use homebrew (brew install libspotify) or download it from here
  • an appkey for libspotify, get it here. Choose binary, not C code.
  • users of libspotify must have a Spotify premium account, this is required by Spotify.
  • (Linux only) If you want audio the ALSA audio system, should be installed in most distributions [1]

[1] See building from source if you don't need/want platform-native audio (i.e. ALSA/OpenAL) in node-spotify.

Building from source

node-spotify is prebuilt with node-pre-gyp. If your NodeJS version or architecture is not available it will build automatically from source.

If you want to force a build from source you can run npm install node-spotify --build-from-source. There's one special option you can set when compiling node-spotify: --native_audio=false will compile/link no ALSA/OpenAL audio code (depending on your platform). Default is true. This is both settable for node-gyp and npm.

node-spotify uses Nan to compile on different NodeJS versions. 0.10, 0.12, 4.x, 5.x, 6.x. should all work.

If you use OSX and have installed libspotify as a framework you need to edit the binding.gyp file. Remove "-lspotify" and write instead as one link option: "-framework OpenAL -framework libspotify". This is due to a bug in node-gyp that will eliminate a duplicate "-framework" entry from the link settings. If you have installed libspotify via homebrew you don't need this step.

Used software

  • Base64 encoder from
  • Sound playback is heavily based on
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free