How it works — Spotycast
Spotycast turns Spotify Connect into a “network radio” stream: Spotify plays into the container, Liquidsoap encodes/remuxes, Icecast exposes mountpoints, then Roon/LMS/Volumio (or any client) can consume the stream like a standard radio URL.
Quick flow (5 steps) end-to-end
1) Check Icecast & list available mountpoints
Open your Icecast instance and confirm the server is up. You should see the list of mountpoints (streams) currently exposed by Liquidsoap.
http://<HOST>:28000
/mp3, /aac, /flac
(names depend on your Liquidsoap profile). If the page loads but no mountpoints are present, it usually means Liquidsoap
isn’t connected yet or Spotify playback hasn’t started.
2) Add a mountpoint as a radio station (Roon / LMS / Volumio / …)
Copy the mountpoint URL and add it as a custom radio stream in your player. Any client that supports “radio URL / HTTP stream” should work.
# Example (adjust the mountpoint)
http://<HOST>:28000/spotify.aac
- Settings → Services / Live Radio (depending on your setup)
- Add a custom stream URL
- Paste the Icecast mountpoint
- Add new radio station / stream URL
- Paste the Icecast mountpoint
- Save and try playback
3) Select the Spotify Connect endpoint
On your phone/desktop Spotify app, open “Connect to a device” and select the endpoint:
- “Roon Spotify Bridge” for the standard workflow
- “Roon Spotify Bridge (Docker)” for the Premium Docker workflow (as labeled in your setup)
4) Play
Start playback in Spotify. This triggers the audio chain: Spotify → PulseAudio → Liquidsoap → Icecast. Your radio client (Roon/LMS/Volumio) should then start receiving audio from the mountpoint.
5) Enjoy
Practical tips ops-minded
Mountpoints not visible?
- Confirm Icecast is reachable:
http://<HOST>:28000 - Start Spotify playback after selecting the correct endpoint (step 3 → 4)
- Check Liquidsoap/Icecast logs inside the container if needed
tail -n 200 /var/log/spotify-roon-bridge/liquidsoap.stderr.log || true
tail -n 200 /var/log/spotify-roon-bridge/icecast2.stderr.log || true
tail -n 200 /var/log/spotify-roon-bridge/pulseaudio.stderr.log || true
Client compatibility
Any player that can ingest an HTTP radio stream should work. Roon, LMS, Volumio, and similar ecosystems are essentially “stream consumers” here.
