Spotify WebSocket Activity API Library
Sactivity has two exports, Sactivity and SpotifyClient.
PUT https://api.spotify.com/v1/me/notifications/user?connection_id=${connectionID}
to subscribe to activity on the account associated with the connection ID, and by relation, the authorization you provided.POST https://guc-spclient.spotify.com/track-playback/v1/devices
and temporarily registers a fake Spotify Web Client that will receive notifications from Spotify.PUT https://guc-spclient.spotify.com/connect-state/v1/devices/hobs_${clientID}
and subscribes to media player events.Event Name | Description | Data Type |
---|---|---|
volume | Emitted whenever the volume has changed | number |
playing | Emitted whenever music is playing again | void |
stopped | Emitted whenever music is stopped | void |
paused | Emitted whenever music is paused | void |
resumed | Emitted whenever music is resumed | void |
track | Emitted whenever a new track is playing | SpotifyTrack |
options | Emitted whenever playback options have changed (shuffle, repeat, repeat-one) | PlaybackOptions |
position | Emitted whenever the position in a song has changed. This includes at the start of a new track. | string |
device | Emitted whenever the device that is playing music has changed. | SpotifyDevice |
close | Emitted whenever the WebSocket has closed. This is a cue to reconnect after a set amount of time. | void |
In the tests folder, you can find a working example.
Data types are declared here
Sactivity works off of cookies issued by Spotify upon login, which seem to persist for quite a while. Here's how to obtain the cookies needed:
cookie
header in the Request headers.Version | Tag | Published |
---|---|---|
2.0.1-beta | latest | 1yr ago |
2.0.0-canary.2 | next | 2yrs ago |