Prebuilt librespot binaries for the Aleph voice assistant.
Upstream librespot ships no binaries — only Docker images and source. Aleph
needs librespot at runtime for server-side Spotify playback to satellites
(spotify_play → librespot → media.out). This repo pins a librespot
version, cross-compiles it for the platforms Aleph supports, and publishes
the binaries as GitHub release assets that internal/binprep/librespot in
the Aleph repo fetches on first use.
Tag format: v<upstream>-aleph<n>, e.g. v0.8.0-aleph1.
<upstream> is the librespot tag built; <n> is incremented when the
build config (cargo features, strip flags, packaging) changes for the same
upstream.
Each release attaches:
| Asset | Target |
|---|---|
librespot-linux-x86_64.tar.gz |
Linux x86_64 |
librespot-linux-aarch64.tar.gz |
Linux aarch64 (Raspberry Pi 4/5, ARM servers) |
librespot-windows-x86_64.zip |
Windows x86_64 |
librespot-darwin-aarch64.tar.gz |
macOS Apple Silicon |
SHA256SUMS |
sha256 of every asset above |
Inside each archive: a single librespot (or librespot.exe) executable.
Minimal feature set — Aleph only needs the pipe backend (raw PCM to stdout) and OAuth access-token auth:
cargo build --release \
--no-default-features \
--features "pipe-backend with-vorbis"
This drops alsa/jack/portaudio/pulseaudio/rodio/sdl backends (Aleph never plays audio locally — the satellite does) and keeps the binary small.
- Edit
LIBRESPOT_VERSIONin.github/workflows/build.yml. - Push a new tag
v<upstream>-aleph<n>. The workflow runs on tag push, builds the matrix, attaches assets to the release. - Update
pinned.goinaleph/packages/aleph/server/internal/binprep/librespot/with the new version + per-target SHA256 fromSHA256SUMS.
Keeps the Aleph repo clean of release artifacts and lets us re-tag/rebuild librespot without touching Aleph history. Aleph depends on this repo only at runtime (HTTP fetch), not at build time.
Built binaries are derivative works of librespot, MIT-licensed. The build
configuration in this repo is also MIT (see LICENSE).