Spotycast stream has no audio
If the Spotycast stream is reachable but you hear silence, the root cause is usually a wrong PulseAudio monitor, a muted or idle sink, a broken Liquidsoap input, an Icecast source path problem, or a player-side issue on Roon, LMS or another HTTP client.
Quick answer
A silent stream usually means Spotify playback exists somewhere in the stack, but the published stream is not fed by the right audio source. The first thing to verify is whether Liquidsoap is reading the correct PulseAudio monitor or capture input, and whether that source actually carries signal.
Typical symptoms
Mountpoint is reachable
The player opens the stream URL correctly, but there is only silence.
Metadata updates, but no sound
The stream appears alive, which usually means the source chain is present but not carrying audio samples.
Local playback works, published stream is silent
The host hears something locally, but the capture / republish path is miswired.
Common causes
- Wrong PulseAudio monitor source selected in the bridge configuration
- Muted sink or monitor on the host
- Liquidsoap input attached to the wrong source
- Spotify output not routed to the expected sink
- Icecast source connected but fed with silence
- Player-side volume or output selection issue on the consuming client
Step-by-step fix
1. Enumerate the real PulseAudio sources and sinks
Do not assume device names. Read the exact source and monitor names from the host.
pactl list short sinks pactl list short sources
2. Verify that Spotify output is routed to the expected sink
If Spotify outputs to another sink than the one monitored by Liquidsoap, the published stream can remain silent.
pactl list sink-inputs
3. Check mute and volume state
A muted sink, a muted monitor or a zero-volume source can create a perfectly valid but silent stream.
pactl list sinks pactl list sources
4. Confirm the Liquidsoap input points to the correct monitor
The capture source in your stream pipeline must match the exact monitor source exposed by PulseAudio.
- Re-read the configured monitor name
- Compare it with
pactl list short sources - Restart the service after correction
5. Validate Icecast independently from the player
Test the mountpoint from another client to isolate whether the silence is upstream or player-side.
ffplay http://YOUR_HOST:YOUR_PORT/YOUR_MOUNT vlc http://YOUR_HOST:YOUR_PORT/YOUR_MOUNT
6. Restart the audio chain cleanly
After changing sinks, sources or Liquidsoap configuration, restart the related services to republish a clean stream path.
systemctl restart spotifyd systemctl restart liquidsoap systemctl restart icecast2
What to collect in logs
Silent playback is easier to debug when you collect both the audio topology and the stream logs together.
pactl list short sinks pactl list short sources journalctl -u liquidsoap -n 200 --no-pager journalctl -u icecast2 -n 200 --no-pager journalctl -u spotifyd -n 200 --no-pager
How Spotycast fits into the fix
Spotycast republishes host playback as a standard HTTP / Icecast stream. When there is no audio, the issue is often not the downstream player itself but the bridge between the host audio graph and the published mountpoint.
When this is probably not a silence issue
- Use Device not showing if the Spotify target is absent
- Use Dropouts if audio cuts in and out
- Use Metadata if titles are missing or stale
Frequently asked questions
Why is my Spotycast stream silent?
The most common reason is that the stream pipeline is connected to the wrong PulseAudio monitor or to a muted source.
Can metadata still work when audio is silent?
Yes. Metadata can update independently from the actual audio samples, so a live title does not guarantee that the stream carries sound.
How do I know whether the problem is player-side or server-side?
Test the same stream URL from another client such as ffplay or VLC. If it is silent everywhere, the issue is upstream on the host or in the bridge.
Can Spotycast still be used with Roon or LMS once the capture path is fixed?
Yes. Once the capture and publish path is correct, Spotycast provides a normal HTTP / Icecast stream that Roon, LMS / Lyrion and similar clients can consume.