Skip to content

v3.1.0

Latest

Choose a tag to compare

@waveplate waveplate released this 30 Aug 15:25

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