Self-host Liquidsoap
v2.4.6Scripting language for audio and video streaming
- Stars
- 1 742
savonet/liquidsoapWhat is Liquidsoap?
Liquidsoap is a powerful scripting language designed for creating and managing audio and video streams. It is widely used for internet radio stations and web TV, offering a flexible language with operators for playlist management, live input handling, transcoding, and output to streaming servers like Icecast, Shoutcast, YouTube Live, and protocols including RTMP, SRT, and HLS. The software includes built-in FFmpeg integration for encoding, decoding, and filtering. It can be self-hosted via Docker images, native packages (Debian, Ubuntu, Fedora, Alpine), OPAM, or built from source. Major users include Radio France (77 stations), AzuraCast, and LibreTime.
Should you self-host Liquidsoap?
Liquidsoap scores 62/100 on selfhost.directory (how scoring works) and ranks #9 of 54 in Media Streaming. It has 1 742 GitHub stars.
It shipped 9 stable releases in the past year. The latest, rolling-release-v2.5.x, came out on 28 October 2026. New versions land roughly every 2 weeks.
Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is GPL-2.0-licensed and written mostly in OCaml.
Its closest alternative on selfhost.directory is Invidious (81/100, 25 798 stars). It scores higher overall, so compare the two before you pick. See Liquidsoap vs Invidious side by side.
Features
- Audio and video streaming
- Crossfading and transitions
- FFmpeg Integration
- Harbor input for live sources
- Live input handling
- Metadata handling
- Multiple output protocols
- Playlist Management
- Prometheus Metrics
- Request-based sources
- Scripting language for streams
- Speech and sound synthesis
- Telnet/UNIX socket control
Liquidsoap README
FAQ
What to do when Liquidsoap crashes with a thread exception?
This usually indicates a bug (report on GitHub) or a user error that wasn't caught cleanly. Check surrounding log messages for the cause.
How to fix PulseAudio interference with ALSA input/output?
Either bypass PulseAudio by creating a custom ALSA device in /etc/asound.conf, or disable PulseAudio by setting autospawn=no in /etc/pulse/client.conf and killing the process.
Where does Liquidsoap store temporary files?
On Unix: TMPDIR environment variable or /tmp. On Windows: TEMP environment variable or current directory.
Why does encoding blank/silence cause listener disconnections?
Pure silence compresses too effectively, resulting in almost no data sent, which causes clients to disconnect. Use a non-silent jingle or synthesis sources like noise() instead.
Why are listeners disconnected at the end of every track?
Some media players (like VLC) don't properly support Ogg/Vorbis streams and treat track boundaries as end-of-file. Workaround: drop metadata and track marks using source.drop.metadata_track_marks.
What causes 'We must catchup x.xx!' errors?
This means a clock is falling behind, typically caused by CPU overload from too much encoding/processing, or network lag to an Icecast server.
What does a type error mean in Liquidsoap?
Type errors indicate mismatched types in your script, such as passing an integer where a float is expected, using a video source where audio is required, or incorrect argument order/labels.
More in Audio
metadata-remoteSelf-hosted web app for editing audio metadata on headless servers. Lightweight Docker container with MusicBrainz, bulk editing, undo/redo, keyboard-first UI.
MeTubeAn open-source, self-hosted web UI for yt-dlp: paste links from YouTube and hundreds of other sites, queue whole playlists, and follow channel subscriptions.
mpdSelf-hosted, open-source server-side music player daemon: it plays audio through the machine's own sound device while any network client controls playback.
musikatSelf-hosted open-source music downloader that searches Deezer or Spotify, fetches audio from YouTube, tags files, and saves to Navidrome or local downloads.
musikcubeOpen-source, terminal-based music player, library indexer and self-hosted audio streaming server with a remote websocket API for custom clients.
muxarrSelf-hosted, open-source utility that deletes unneeded audio and subtitle streams from video files without re-encoding, works with Sonarr and Radarr.
noisedashSelf-hosted web app for creating custom ambient soundscapes with generated tones, uploaded samples, filters, and user profiles.
open-record-poolOpen Record Pool is a self-hosted DJ record pool that scans music, extracts MP3 metadata into PostgreSQL, and provides a web UI with search, playback, and DJ exports.
owntoneSelf-hosted, open-source audio server streaming your library and radio to AirPlay multiroom speakers, Chromecast, Roku and local output, with web and MPD control.
PlaylistPillarPlaylistPillar is a self-hosted, open-source music archival tool that transforms streaming playlists into durable local libraries with embedded ID3 tags and album art.
PolarisSelf-hosted, open-source music streaming server aimed at collections of 100,000+ songs, with a web player, multi-user playlists, FLAC/MP3/Opus support and mobile apps.
PrismicalAn open-source AI note-taking app that records and transcribes meetings locally using Whisper or cloud models — no bots join calls. Works on desktop, mobile, and web.
0 comments