Liquidsoap can schedule and shape a continuous jazz playlist, but it does not by itself provide the complete audiovisual feed YouTube needs. Pair its audio with a visual, encode the combined output with FFmpeg, and send that feed to YouTube Live; then plan separately for failures, rights and recording.
That distinction matters overnight. A playlist can keep selecting tracks while the host loses power, the upload connection drops, or YouTube interrupts a broadcast. The setup is a chain of parts to test and monitor, not a guarantee of 24/7 availability.
Understand the Liquidsoap-to-YouTube architecture
Think of the system as a path: audio files become a scheduled programme, a visual is added, an encoder packages both, and YouTube receives the resulting live feed. Liquidsoap is responsible for the audio source and can work with video sources; FFmpeg handles encoding in the documented YouTube pattern. YouTube is the destination and manages the live event on your channel.
This differs from a conventional internet radio endpoint. Liquidsoap can send audio to Icecast, which listeners receive through a radio player. YouTube Live expects an audiovisual stream. If you want both YouTube and an Icecast radio endpoint, treat them as separate outputs with their own configuration and monitoring. An Icecast address is not a substitute for YouTube’s ingest address.
The Liquidsoap project documentation includes playlist-based radio examples and a YouTube live output example. Its versioned reference for source and output functions describes a YouTube RTMP output, including the ingest URL, secret key and encoder. Examples and operator names may change between releases, so choose a Liquidsoap version and check its matching documentation rather than copying a snippet from a different version without testing it.
A useful design question is what should happen when each link fails. A playlist can run out of readable files; a visual can fail to load; FFmpeg can exit; an internet connection can disappear; or YouTube can reject or interrupt the feed. Write down which part detects each failure and what a restart does. A continuously looping source only addresses track selection. It cannot restore a disconnected network or ensure a process starts again after a host reboot.
Build a continuous jazz playlist source
Start with a dedicated folder of audio files you are entitled to broadcast. Keep the playlist predictable: use clear filenames, separate approved programme material from drafts, and check that each file opens and plays through the tools you plan to use. A track that is corrupt, silent, or encoded in an unsupported format can create a gap even if the playlist itself is configured to repeat.
Liquidsoap’s playlist source can read a collection of files and select tracks for playback. Its project examples also show ways to rotate material, insert jingles and crossfade tracks. Those are programming choices, not requirements for continuity. A simple repeating playlist is easier to troubleshoot first; add rotation or transitions only after you have confirmed that file changes do not produce silence, clipping or abrupt cuts in your intended output.
Build the programme around the listening experience rather than just the file count. If the channel promises a particular mood, check the transitions in sequence, keep levels reasonably consistent, and decide whether announcements or station identification belong in the rotation. A long list of tracks does not guarantee that the sequence feels coherent. Listen to the output for longer than a single track change, especially where formats, mastering levels or silence at track boundaries differ.
Consider an explicit fallback source if the main playlist can become unavailable. For example, a small set of approved instrumental tracks might be a fallback for a missing primary folder. Test what happens when the main source is empty or inaccessible; do not assume that a fallback works because it appears in a configuration. Make sure it is itself suitable for broadcast and that the transition back to the main playlist behaves as intended.
Keep programme updates controlled. Adding files while a process is running may be convenient, but the exact behaviour depends on how the source is configured and the version in use. Test additions and removals before relying on them in production. If you need to change a playlist without disrupting the live programme, the practical considerations overlap with changing a YouTube video playlist without interrupting a live stream, though an audio playlist has its own scheduling and file-validation details.
Pair the audio with a visual source
A YouTube radio stream still needs video. The simplest approach is a still cover image paired with the audio. Liquidsoap’s video documentation illustrates the idea of using an image source and muxing it with an audio source; treat examples such as single("image.jpg") and source.mux.video as conceptual until you verify their syntax and requirements against your installed version. See the Liquidsoap video guide before adapting a configuration.
A static image places less visual change into the programme and is usually simpler to prepare. Check that it is legible at the intended output size, uses artwork you are allowed to display, and does not accidentally include a misleading claim about the music or station. The visual does not need to pretend to be live performance footage. It should give viewers a clear indication of what the channel is and remain stable during long listening sessions.
A loop or live visual source can make the presentation more active, but adds another source to configure and check. A video loop can end, stall or have different frame dimensions from the encoder’s expected output. Live visuals introduce their own capture device, process or network dependency. In each case, consider the additional CPU and memory use, the visual’s rights, and how the feed behaves if that source is unavailable.
Choose the least complicated visual that serves the channel. If a still image is sufficient, begin there and confirm YouTube receives both picture and sound. If you later add a visual loop, change one thing at a time and repeat the same checks. A setup that looks more elaborate in a preview is not necessarily easier to keep running overnight.
Use FFmpeg to encode the audiovisual output
The encoder converts the combined audio and visual output into a format YouTube can ingest. Liquidsoap’s official examples show a YouTube live output using FFmpeg-backed H.264 video and AAC audio encoding. This is the point where you set output resolution, frame rate, bitrate, keyframe interval and audio parameters, according to the encoder version and YouTube’s current guidance.
YouTube’s live encoder settings list supported codecs and recommended settings for RTMP or RTMPS delivery. The page’s current guidance includes H.264 video, AAC or MP3 audio, constant bitrate and a two-second keyframe interval, with a maximum interval of four seconds. It lists recommended H.264 bitrates by resolution and frame rate, including 5 Mbps for 1080p30 and 3 Mbps for 720p30. Check the live table before setting up a production encoder because platform guidance can change.
For a jazz station that uses a static image, a higher video resolution may add little for listeners while increasing the bandwidth and encoding load. Select a modest visual output that remains clear on a phone, then check that the host can encode it continuously. Audio quality is central to this format, but do not choose audio settings in isolation: the outgoing feed includes the video stream too, and YouTube’s total bitrate guidance applies to the combined programme.
A useful comparison is the trade-off between a still image and more involved visuals:
| Choice | What it adds | What to check |
|---|---|---|
| Still cover image | A simple, stable picture paired with audio | Image dimensions, legibility, rights and successful audio/video muxing |
| Video loop | Motion and more visual variation | Loop continuity, file compatibility, additional encoding load and rights |
| Live visual source | A changing scene or production | Capture reliability, extra dependencies, host capacity and recovery behaviour |
Do not infer a hardware minimum from a codec table. Encoding demand varies with resolution, frame rate, filters, visual complexity and the machine in use. Watch CPU and memory use during a real test at the settings you plan to run, and leave capacity for normal background tasks. The Liquidsoap encoding guidance notes the additional demands associated with video compared with audio-only work.
Send the feed to YouTube with the stream key
In YouTube Studio, create or configure the live event and use the stream URL and stream key provided for it. The encoder needs both the destination and the key to deliver the feed. Confirm the event’s visibility, title, category and other channel settings in Studio; those are separate from the Liquidsoap playlist and encoder configuration.
Treat the key as a password. Do not publish it in a script repository, paste it into a public troubleshooting post, or leave it visible in a screen recording. Restrict access to the machine and configuration that contain it. If you think the key has been exposed, YouTube explains how to reset a compromised stream key in its live streaming help. After a reset, update the encoder with the replacement and test the connection again.
YouTube says channels need verification and must not have a live-streaming restriction in the preceding 90 days to access live streaming; first-time activation can take up to 24 hours. These are YouTube’s current help-page requirements, not a promise of approval or a substitute for checking your channel’s status. Review the live streaming eligibility guidance before choosing a launch date, particularly if this is the first time the channel will broadcast.
A YouTube-only configuration is simpler than sending to multiple destinations. If you also need a conventional radio player, that can be an additional output, but it means more endpoints and more failure modes to monitor. Keep the YouTube output’s ingest details distinct from any Icecast settings. A stream key for one destination does not replace configuration for another.
Test and monitor the end-to-end stream
Before announcing a continuous channel, run a controlled test from the same host and network you intend to use. Check the YouTube preview for picture and sound, listen for gaps and level changes, and confirm that the event reports a healthy incoming feed. Verify that the selected visual stays present through track changes and that the encoder does not exit after a playlist transition.
Test the failure paths deliberately. Stop and restart the encoder, disconnect or simulate loss of the network where practical, and check what happens after the host reboots. Confirm whether a supervisor or service manager starts the process again and whether its logs make a failure understandable. If you cannot safely simulate a particular interruption on the production channel, test the relevant behaviour in a separate controlled setup before depending on it.
YouTube advises testing encoder output and continuously monitoring stream quality. Its network guidance also says your upload capacity needs to support the outgoing bitrate and recommends leaving 20% headroom above the total stream bitrate. Include a backup stream in that calculation if you send one. A speed test taken once is not evidence that the connection will remain stable during a long broadcast; check at the times and conditions that matter to your location.
Monitoring should cover both the viewer’s experience and the process. Check that the live event remains active, the image is present, the audio is audible, and the host still has headroom. Keep logs or alerts that tell you when a process stops, rather than relying on a viewer to report silence. A remote check can catch an outage, but it does not itself restore service; pair detection with a tested restart plan and a person who can respond when automatic recovery fails.
For an operational example of the viewer-side question, see how to check whether a 24/7 cartoon livestream is still live on YouTube. The specific checks differ for a music stream, but the distinction between a live-looking page and a feed that is actually delivering useful audio and video is relevant.
Plan for host, network, rights and archive issues
The host can be a machine you control or a hosted system. A local computer gives you direct access to files and logs, but relies on local power, networking and the machine remaining available. A hosted server avoids some household power and access issues, but still depends on the provider, the network path and your ability to manage recovery. Neither choice is inherently reliable without a plan for process supervision, updates, storage and access. For a cost comparison focused on India, a refurbished mini PC versus a VPS for a 24/7 YouTube channel lays out considerations that also apply to an always-on audio-and-video process.
If you operate locally in a place where power cuts are a concern, account for the router and the host, not just the computer. A battery backup for one device will not help if the network equipment loses power. If you host remotely, inspect the plan’s included transfer, resource limits and recovery options before committing, and budget for recurring costs. Avoid choosing solely on a headline resource figure: the actual encoding workload and upload path matter.
Network interruptions can stop the feed even when Liquidsoap continues playing locally. Measure upload capacity under ordinary conditions and compare it with the full outgoing bitrate, including any backup stream. YouTube’s recommended 20% headroom is a planning margin, not a guarantee that a connection is free from congestion or dropouts. If your connection is shared, unstable or subject to load shedding, consider whether a different host or network arrangement provides a more workable recovery path. The load-shedding planning guide for YouTube streams in India is relevant when local power and connectivity are the weak links.
Music rights are a separate launch prerequisite. A file being available to download or play does not establish that you may broadcast it on YouTube, in every territory, or continuously. Confirm the rights for the recordings, compositions and any artwork you use, and keep records of the relevant permissions. If a rights holder uses Content ID, they may need to allowlist your channel for licensed content to avoid automated interruptions; ask the rights holder or distributor rather than assuming a licence automatically prevents a match.
YouTube says that “All live streams are scanned for matches to third-party content, including copyrighted content in the form of another live broadcast.” Its copyright guidance for live streams explains that a match can lead to a warning, interruption or termination. Playlist automation does not clear music rights, and a working test broadcast does not establish that every track is cleared for future use. Check current official guidance and the terms of your own licences before going live.
Plan for recording independently of YouTube’s archive. YouTube Help says streams under 12 hours can be automatically archived, while streams exceeding 12 hours may not be captured at all. If a complete record matters, make and verify a local recording, and size storage for the bitrate and retention period you need. A recording that is never checked for completeness is not a dependable archive. Decide who checks it, where it is stored, and how you will recover it after disk failure.
Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.
FAQ
Can Liquidsoap send a complete YouTube video stream by itself?
Do not treat Liquidsoap as the entire audiovisual chain. It can schedule and shape audio, and its documented YouTube pattern pairs the programme with video and uses FFmpeg-backed encoding for the outgoing feed. Verify the exact operators and requirements in the documentation for your installed version.
What happens if the jazz playlist reaches its last track?
Configure the playlist source to repeat or provide a tested fallback source, then test the end-of-playlist behaviour before launch. Repeating tracks keeps programme selection going, but it cannot recover a stopped encoder, failed host or lost connection.
Can YouTube archive a continuous stream longer than 12 hours?
YouTube Help warns that streams exceeding 12 hours may not be captured at all. If you need a complete record, make a local recording and check that it is present and usable rather than relying on an automatic archive.
Does a playlist of jazz tracks mean the stream is cleared for broadcast?
No. Confirm that you have the rights needed for the recordings, compositions and visuals, including the relevant territories and YouTube use. YouTube scans live streams for third-party matches, and automation does not remove that risk.