Repository navigation
v3.1.0 release notes
the third major version release of spotifm represents a complete rewrite and major architectural overhaul. spotifm is now a fully standalone streaming server with integrated audio encoding, web player, milkdrop visualizers, rest/websocket apis, and scopes.
highlights
standalone audio pipeline
spotifm no longer requires icecast, liquidsoap, ices, or pulseaudio.
audio streaming and encoding are now handled internally using gstreamer, with support for:
- spotify ogg passthrough (default, recommended)
- vorbis
- opus
- mp3
bitrate, buffering, silence intervals, and custom audio pipelines are configurable.
rest and websocket apis
spotifm now includes apis for:
- playback control
- spotify search
- playlist management
- lyrics
- scopes/access control
- live telemetry
openapi yaml and json definitions are included, along with interactive redoc documentation.
built-in http and https listeners allow browser features requiring a secure context to work without a separate web server. spotify account linking is handled through a built-in oauth pkce flow.
web player
the web player has been substantially expanded with:
- milkdrop visualizers powered by butterchurn
- crt, ntsc, and vhs shaders
- synchronized lyrics using web audio worklets and ogg granule position tracking
- live audio telemetry
- track and artist search
- playlist management
- playback controls
standalone static binary
the spotifm binary is distributed as a static musl build, i.e., the spotifm binary will work on any x64 linux operating system.
release files
this release contains
spotifm-v3.1.0-x86_64-unknown-linux-musl.tar.gz- spotifm
- player/
- player/spotifm-player-sw.js
- player/spotifm-audio-worklet.js
- player/minimal.html
- player/index.html
- player/defaults.json
- player/build.sh
- player/vendor/
- player/vendor/ogg-vorbis-decoder.min.js
- player/vendor/butterchurn.js
- player/vendor/butterchurn-presets.js
- player/src/
- player/src/minimal.html
- player/src/index.html
- player/src/js/
- player/src/js/000-player.js
- player/src/css/
- player/src/css/000-player.css
- config.toml
- README.md
- LICENSE
if you need to manually install spotifm for some reason
sudo cp spotifm /usr/local/bin
sudo mkdir /usr/local/share/spotifm
sudo cp -r player /usr/local/share/spotifm
otherwise, just use the installer (which fetches this exact release anyway)
curl -fsSL https://raw.githubusercontent.com/waveplate/spotifm/v3.1.0/install.sh | bash