Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spotifm (3.1.0-alpha)

spotifm

spotifm is a personal web radio streamer powered by your spotify library

Note

a spotify premium subscription is required to use spotifm

changes/new features

  • standalone web radio
    • no longer requiring co-deployment with icecast and ices
  • flexible audio pipeline
    • user-definable gstreamer pipelines for encoding, muxing, audio processing, buffering, and output behaviour
  • rest and websocket apis
    • playback control, search, playlist management, lyrics, telemetry, authorization & scopes
  • cool web player
    • aesthetically pleasing web player with milkdrop visualizer + realistic ntsc/vhs webgl shaders, live telemetry, song search and playback control. highly configurable
  • reference player
  • bots

quick start

1) start spotifm

docker is the recommended way of getting up and running and only takes a few minutes

docker

clone this repo

git clone https://github.com/waveplate/spotifm
cd spotifm
docker compose up -d spotifm

;

run without docker

see the build guide, then start with

./target/release/spotifm

2) visit /oauth endpoint

visit the /oauth endpoint, e.g., http://127.0.0.1:3333/oauth

this endpoint will automatically redirect you to spotify's oauth authorization portal and generally guide you through the authorization process

why does it say ncspot? -- this is because we're borrowing the client_id used by the ncspot client for the sake of expediency. alternatively, see linking your own app

3) listen to some music

Important

the web player uses a service worker and an audio worklet to play and inspect the audio stream so that lyrics and visualizations remain synchronized

browsers restrict these features to secure contexts: HTTPS, or HTTP on a loopback address such as 127.0.0.1. this is why spotifm starts an HTTPS listener in addition to HTTP

in addition to this, certain capabilities like autoplaying audio (without explicit interaction from the user) requires HTTPS regardless of whether it's running locally or not

tl;dr: just use HTTPS

using the web player

using the /listen endpoint

play a track


documentation


About

spotifm is a personal web radio streamer powered by your spotify library

Topics

Resources

Stars

62 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages