EricRabil / sactivity

Spotify WebSocket Activity API Library
GNU General Public License v3.0
17 stars 1 forks source link

sactivity

Spotify WebSocket Activity API Library

How it works

Sactivity has two exports, Sactivity and SpotifyClient.

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

Before starting

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:

  1. Open Chrome
  2. Open devtools
  3. Go to the network inspector, and in the filter type "get_access_token"
  4. Navigate to https://open.spotify.com in that tab
  5. Click on the network request that shows up, then copy the entirety of the cookie header in the Request headers.