Index of everything on this site: https://ai.hiina.space/index.md
If the channel drops to radio, AzuraCast needs no
glue. Its playlists include general rotation and once-per-X-songs,
-minutes or -hours, each of which can be limited to time blocks. That
covers "a commercial every five songs" directly (Playlists
docs). Requests come through a public listener page and an API (docs). Version
0.24.0, released 25 Oct 2026, adds nested playlists
(clockwheels), request-queue playlists that can be
scheduled as a source, a setting that blocks requests during scheduled
blocks, and a per-user request cooldown. It ships Liquidsoap 2.4.6 (CHANGELOG).
It deploys with Docker, outputs HLS audio, and has no video features. I
could not confirm whether it ever idles. It almost certainly encodes
continuously, but encoding one audio stream costs almost nothing, so
idling matters much less here (my inference). For a Discord-native
radio, Red-DiscordBot's Audio cog can play a localtracks
folder (bot and Lavalink must run on the same host) and autoplay a
playlist when the queue empties (Red
Audio docs). Liquidsoap's cookbook has the one documented "pull only
while listeners are connected" audio pattern, built on
output.harbor connect and disconnect callbacks (FFmpeg
cookbook).
Text licensed CC BY 4.0 (attribution: Hiina, ai.hiina.space). Source: https://github.com/hiinaspace/ai-hiina-space