To stream Sikh kirtan continuously with Liquidsoap and YouTube, prepare recordings you have permission to broadcast, use Liquidsoap to build a continuous audio source, then send an encoded output to YouTube Live. The exact output configuration depends on your installed Liquidsoap version and YouTube’s current ingest requirements, so treat examples as a design guide until you have validated them locally.
A playlist can keep programme audio moving, but it cannot guarantee a working computer, network, YouTube ingest, archive or rights position. This guide separates documented Liquidsoap concepts from details you need to verify in your own build, and sets out a cautious path to a test broadcast before you rely on it overnight.
Confirm recording rights and prepare the audio library
Begin with the rights for each recording, not with the playlist syntax. Sikh kirtan describes devotional music and its subject matter; it does not mean that a specific recording is free to rebroadcast. A recording can involve separate rights in the performance, arrangement, master recording and any included third-party material. Confirm that your permission covers continuous livestreaming on YouTube and the territories in which viewers may access it.
YouTube’s live-streaming terms say creators must have the necessary rights for live content, including music licensing rights. YouTube also scans live streams for third-party content matches. A detected match may interrupt or terminate a stream, and a rights owner may need to allowlist your channel where the content is licensed. Neither devotional purpose nor a permission from one participant automatically settles every right involved. Keep records of licences, permissions and any channel allowlisting correspondence, and check the current official terms rather than assuming that a previous broadcast establishes permission.
Once rights are clear, make a dedicated directory or playlist containing only the files you intend to use. Use filenames that are easy to recognise, and keep a separate inventory of the recording, source, rights contact and any restrictions. This is useful when a particular track is challenged: you can find it without stopping to identify files in an unfamiliar folder.
Check that files decode cleanly and play from beginning to end. Listen for long silences, abrupt cut-offs, inconsistent levels, accidental announcements or material that was not part of the intended programme. A file that opens in a media player may still cause trouble in a long playlist if its encoding is unusual, so test the actual files with the Liquidsoap release you plan to run. Keep an untouched copy of your source library and make edits on working copies.
The same rights discipline applies if you add station identification, spoken introductions or a visual track. A visual still needs to be appropriate for the channel and permitted for use; adding an image does not change the rights position for the audio. For a wider discussion of rights checks on continuous music channels, see how to keep a 24/7 ambient stream from getting copyright claims.
Choose a Liquidsoap version and inspect matching docs
Liquidsoap documentation is versioned, and not every page you find describes the same release. The playlist and source-composition material cited here is from the current 2.5.x development documentation, while the specific output.youtube.live.rtmp reference available for this guide is for Liquidsoap 2.4.5. These references establish useful concepts, but they are not proof that one complete script will run unchanged on every installed release.
First identify the version installed on the machine that will run the stream. Then open the documentation matching that release and check the relevant playlist, source-composition, encoder and output functions. If you are installing Liquidsoap for the first time, choose a release deliberately and keep its version recorded with your configuration. Avoid copying a function signature from development documentation into an older stable build without checking whether the function and its arguments exist there.
The 2.4.5 reference documents output.youtube.live.rtmp with an encoder, a source, a secret stream key and an RTMP URL parameter; its documented default URL is rtmp://a.rtmp.youtube.com/live2. That is a version-specific reference point, not an instruction to hard-code that endpoint forever. YouTube Live Control Room supplies the current stream URL and key for the channel, and the value shown there should govern deployment.
Keep an example script separate from a production configuration. Before turning a documentation pattern into a running service, verify its syntax with the installed version, confirm which encoder formats are available in that build, and read the matching error messages. No complete script in this guide has been run against your files, Liquidsoap build, network or channel. That distinction matters: source-composition documentation explains how sources can be arranged, while a functioning YouTube output also depends on the encoder and ingest setup.
If you are comparing architectures rather than committing to Liquidsoap, Muvi Live and OBS for an always-on YouTube channel offers a different framing of software choices. It does not replace version-specific Liquidsoap validation, but it may help you decide whether maintaining a process and configuration is the right operational fit.
Build and validate a playlist source
Liquidsoap models a playlist as a source. Its source-composition documentation shows a playlist used as default music and describes how sources can be selected and handed off. In practical terms, a source is the program material that later gets passed through output and encoding stages; a directory of audio files is not by itself a YouTube stream.
Start with the simplest possible source: a small test playlist containing several representative files from your library. Use the playlist form supported by your installed version, and point it at a test directory rather than the complete collection. Confirm that Liquidsoap can find the files, decode each one and proceed from one item to the next. Check logs for missing paths, unsupported formats and decoder failures rather than relying only on a short listen.
Then test the full prepared library. Make sure the process can read every file under the account and working directory it will use unattended. Relative paths can behave differently when a process starts from a service manager or a scheduled job than when you run it from a terminal, so prefer paths whose meaning is clear in the eventual run context. Keep the folder structure stable after validation, or repeat the checks after changing it.
A useful checkpoint is a local listen or recording of the Liquidsoap source before it reaches YouTube. Verify that the beginning, handoffs and endings sound as expected. Listen at the transition points, not just to one file near the start. If levels vary significantly between recordings, decide whether to correct the files or apply processing that is documented for your Liquidsoap version; do not assume a playlist automatically normalises them.
For a playlist-only channel, the configuration and operating procedure are simpler: one source supplies the programme continuously. If you expect a presenter to interrupt with a live microphone, the source design becomes more involved. Liquidsoap’s source composition supports a live Harbor input with a playlist fallback in the development documentation, but you should confirm the matching mechanisms and handoff behaviour in your own version. A fallback can choose available sources; it does not guarantee that every transition will suit the programme or that a remote contribution will be intelligible.
| Programme arrangement | What it makes possible | What you need to validate |
|---|---|---|
| Playlist-only source | A repeating or continuous recorded programme without a presenter input | File access, decoding, item handoffs and what happens if the playlist is unavailable |
| Live source with playlist fallback | A live contribution can take priority while the playlist remains a backup source | Input availability, source priority, transition behaviour and recovery when the live source drops |
If you only need recorded material, begin with the playlist-only arrangement and introduce live inputs only for a specific operational reason. For the playlist side of YouTube playback more broadly, how to make a YouTube Live playlist loop continuously explains the distinction between looping programme material and maintaining the live broadcast itself.
Configure continuous playout behavior
A continuous source needs a defined answer to the end of each file and to the end of the available programme. Confirm that your playlist configuration advances through items and repeats or otherwise continues in the way you intend. Do not infer this from a short test with a single file: a source that plays one track successfully has not yet demonstrated a full handoff or repeat cycle.
There is a difference between a programme that has no planned endpoint and a process that is guaranteed to run indefinitely. Liquidsoap can compose sources and send a source to an output, but the playlist alone does not keep the host computer powered, repair a failed network connection or ensure YouTube is accepting the stream. Define how the process starts after a reboot, where its logs go, and who will notice if it exits. Those are operating decisions alongside the playlist design.
If human presenters need to join, test transitions at realistic times and with the actual input path. Decide what listeners should hear when a live source becomes unavailable: immediate return to the playlist, a brief silence, or another defined behaviour. Avoid building a complex source tree before the simpler playlist has passed file and handoff checks. Complexity creates more places where an unattended stream can behave differently from the test you performed.
A 24/7 channel can also be arranged as one long-running stream or as scheduled segments. The choice affects how you handle breaks, archive preservation and recovery. YouTube says streams shorter than 12 hours can be automatically archived, while streams longer than 12 hours may not be captured at all. If keeping a recording matters, plan for segments or a separate local recording workflow rather than relying on one continuous broadcast archive.
Configure YouTube RTMP output with current credentials
After the source behaves locally, connect it to the output documented for your Liquidsoap version. The 2.4.5 reference for output.youtube.live.rtmp describes an encoder, source, secret key and URL parameter. Use it as a versioned reference only: check its function signature and encoder requirements against the installed release before adapting it. The research behind this guide did not validate a complete end-to-end Liquidsoap script, so any configuration you write must be treated as untested until you run it.
In YouTube Live Control Room, use the current stream URL and key presented for your broadcast setup. YouTube’s encoder setup guidance describes this workflow. Treat the key like a password: do not put it in public repositories, paste it into a public help request or leave it in a world-readable configuration file. Keep the key out of examples and logs you share. If you believe it has been exposed, replace it through the channel’s current live settings and update the running configuration.
YouTube’s live encoder guidance lists H.264, H.265 and AV1 video codecs, AAC or MP3 audio, and recommends constant bitrate encoding. It recommends a two-second keyframe interval and says not to exceed four seconds. It recommends RTMPS for encryption in transit. These are YouTube’s published recommendations, not results measured for your machine or guarantees that a particular encoder expression will work. Check that the Liquidsoap build and encoder you have chosen can produce an ingest-compatible output, including any video component required by your channel setup.
For stereo audio, YouTube’s current guidance recommends 128 Kbps and a 44.1 kHz sample rate. Match the chosen settings to what the installed encoder can produce and to YouTube’s current instructions. Do not copy a video encoder setting into an audio-only setup without checking the output requirements: this guide does not establish that a complete audio-only Liquidsoap-to-YouTube configuration is accepted. If your YouTube ingest requires video, determine and test a suitable visual source and encoder path for your Liquidsoap version before scheduling a public broadcast.
RTMP and RTMPS differ in transport encryption. Prefer RTMPS where your encoder and setup support YouTube’s recommended encrypted ingest, but first verify that the actual endpoint and output configuration work together. Do not confuse selecting an encrypted URL with confirming that the stream reaches the correct event. Preview and health status in Live Control Room are the practical check.
Test locally before a live session
Use a staged test rather than learning about an encoding or credential problem during a public broadcast. First run Liquidsoap against the test playlist without sending anything to YouTube. Confirm that the process starts, decodes the files, changes tracks and produces stable audio. Review warnings and errors, and restart the test after changing configuration so you know the result corresponds to the current file.
Next, test the output with a private or unlisted session, using the channel’s current ingest URL and key. Preview the result in Live Control Room before making the stream public. Confirm that YouTube receives the intended audio, that any required video is present, and that the health indicator does not show an unresolved ingest issue. YouTube recommends testing and monitoring; a successful local listen cannot substitute for checking the receiving platform.
Test the awkward cases as well as the normal one: a file that ends, a missing file, a restart of the Liquidsoap process and a return of the network connection. You do not need to manufacture every possible failure, but you should know what the logs show and what action restores the stream. Keep a short record of the exact Liquidsoap version, configuration revision, encoder settings and outcome, so that a later change is not mistaken for the setup you tested.
Do not interpret a green preview as proof of rights or future availability. It tells you something about the current ingest, not whether every recording is authorised, whether an archive will be preserved or whether the machine will remain online overnight. Keep those questions separate in your launch checklist.
Monitor and plan for failure recovery
A continuous stream has several dependencies outside the playlist: source files must remain available, Liquidsoap must run, the host must stay powered, the network must carry the output, credentials must remain valid and YouTube must accept the ingest. Decide who or what will notice a failure, how logs will be checked, and how the process should be restarted. If the stream matters while you are away, test the restart procedure before leaving it unattended.
Keep a local recording if you need an independent copy of the broadcast. YouTube recommends maintaining a local archive, and its guidance warns that streams over 12 hours may not be captured at all. A separate recording uses storage and needs its own checks: confirm it is being written, that free space is sufficient for your format and retention period, and that you can play back a sample. An external SSD can be one storage option, but no particular device is required; choose capacity according to your recording needs.
Plan for the difference between restarting a process and restoring a broadcast. A process restart may resolve a local failure but can interrupt the live session or require a new event or ingest configuration. Check your current Live Control Room workflow and decide how you will re-establish the stream if YouTube ends or disconnects it. Keep credentials accessible to the responsible operator without exposing them in shared notes.
A process running on a computer you own keeps you responsible for its power, updates, network and recovery. A VPS or dedicated host may suit an unattended process, but provider choice requires checking its actual network, storage and operating capabilities; Liquidsoap documentation does not establish that any particular host will be suitable. If your priority is avoiding a local computer and the ongoing task of watching a player process, StreamNeo removes that specific operational burden by turning an uploaded file into a YouTube broadcast that runs with your computer switched off. It remains YouTube-only, and the rights, ingest setup and archive decisions remain yours.
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 I use any Sikh kirtan recording if the composition is traditional?
No. A traditional composition does not establish that a particular performance, arrangement or recording is free to rebroadcast. Confirm the rights for the actual material and check YouTube’s current livestream terms and copyright guidance before streaming it.
Does a Liquidsoap playlist guarantee a 24/7 broadcast?
No. It can supply programme audio and hand off between playlist items, but it cannot guarantee that the host, network, output configuration or YouTube ingest will remain available. Test the complete setup and plan how you will monitor and recover it.
Which Liquidsoap version should I use for YouTube RTMP?
Use a release whose matching documentation supports the source, encoder and output functions you need. The source-composition material cited here is from 2.5.x development docs, while the output.youtube.live.rtmp reference is for 2.4.5; check the documentation for your installed build rather than combining them as though they were one tested example.
Will YouTube keep an archive of a continuous stream?
Do not rely on it for a stream longer than 12 hours. YouTube says shorter streams can be automatically archived and longer streams may not be captured, and recommends keeping a local recording if a copy matters.