Please note that because of a recent Spotify update, the library is not working at the moment. Discussion here: #41
This is a rewrite of the excellent node-spotify-webhelper, but with support for events, so you don't have to do getStatus()
all the time. It also is faster, and starts SpotifyWebHelper on OS X, not just on Windows.
I am also trying to maintain the project and handle issues, at least every 2 months. Pull requests welcome!
$ npm install spotify-web-helper --save
const SpotifyWebHelper = require('spotify-web-helper');
const helper = SpotifyWebHelper();
helper.player.on('error', err => {
if (error.message.match(/No user logged in/)) {
// also fires when Spotify client quits
} else {
// other errors: /Cannot start Spotify/ and /Spotify is not installed/
}
});
helper.player.on('ready', () => {
// Playback events
helper.player.on('play', () => { });
helper.player.on('pause', () => { });
helper.player.on('seek', newPosition => {});
helper.player.on('end', () => { });
helper.player.on('track-will-change', track => {});
helper.player.on('status-will-change', status => {});
// Playback control. These methods return promises
helper.player.play('spotify:track:4uLU6hMCjMI75M1A2tKUQC');
helper.player.pause();
helper.player.seekTo(60); // 60 seconds
// Get current playback status, including up to date playing position
console.log(helper.status);
// 'status': {
// 'track': ...,
// 'shuffle': ...,
// 'playing_position': ...
// }
});
opts
<object>
Options.opts.port
<number>
Web helper port. Default is 4370.
Gets the current saved status.
Refetches the status from Spotify and returns it.
Inherits from EventEmitter.
Playback has ended.
An error has occurred. The listener callback receive the <Error>
as first
argument. An error occurs when Spotify cannot be started, is not installed, or quits.
Refer to the example above to see how to distinguish errors.
Playback has paused.
Playback has started.
User has changed the current playing positon.
This player object is ready to use.
Current status has changed. The listener callback receive a <
SpotifyStatus
>
object as first argument.
helper.status
will be changed by the new status after this event is emitted.
Current track has changed. The listener callback receive a <
SpotifyTrack
>
object as first argument.
unpause
<boolean>
true
to resume playback. Default is false.- Returns
<Promise<
SpotifyStatus
>>
spotifyUri
<string>
Spotify URI.- Returns
<Promise<
SpotifyStatus
>>
<number>
Web helper API version. Currently 9.
<string>
Client version.
<boolean>
true
if a track is playing.
<boolean>
true
if shuffle is enabled.
<boolean>
true
if repeat is enabled.
<boolean>
true
if playing is available.
<boolean>
true
if skipping to previous track is available.
<boolean>
true
if skipping to next track is available.
<
SpotifyTrack
>
Current track.
<object>
<number>
Current track position, in counting seconds.
<number>
Server time in UNIX time.
<number>
Audio volume, from 0 to 1.
<boolean>
<object>
<boolean>
<
SpotifyResource
>
Song resource.
<
SpotifyResource
>
Artist resource.
<
SpotifyResource
>
Album resource.
<number>
Track length in seconds.
<string>
<string>
Name.
<string>
Spotify URI.
<object>
Object containing attributeog
, which represent an HTTPS URL to the resource.
Since 1.3.0 node >=4.0 is required. Use 1.2.0 for older node versions.