# Reload playlist failling

**URL:** <https://discourse.libretime.org/t/reload-playlist-failling/1982>\
**Category:** Uncategorized\
**Created:** [April 8, 2026, 10:16am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982 "2026-04-08T10:16:19Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ppp](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@ppp](https://discourse.libretime.org/u/ppp)\
**Post date:** [April 8, 2026, 10:16am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/1 "2026-04-08T10:16:19Z")

</div>

Hello all,

we are setting up an online another online radio…  
Libretime is install via Docker Compose, all details of the install are here : [Making sure you're not a bot!](https://git.disroot.org/sigpie/PortoRadioSetup/wiki)

I’m giving my best try to make custom auto-dj fallback, editing ls\_script.liq which kind work as expected…

But sometimes, I see liquidsoap playing infinitely the emergency track… an never getting back to the playlist… Even if the reload time is setup to 12h…

I’ve a bash script that populate with new audio files the “day” folder at night, and the “night” folder during the day… But it seems when 2 tracks can’t be loaded in a row by liquidsoap, it fallback on the emergency, and never get out of it….

Is there some sort of playlist.reload possible when it’s on fail? I could find a solution in the doc or the book…

Relevant part of the script is here :

```auto
#default = amplify(id="silence_src", 0.00001, noise())

# Safety offair song
emergency = playlist("/app/myradio/offair")

# Day music
day = playlist(reload=43200, reload_mode="seconds", "/app/myradio/music/day")

#Night music
night = playlist(reload=43200, reload_mode="seconds", "/app/myradio/music/night")

# Enable metadata
day = map_metadata(update_metadata, day)
night = map_metadata(update_metadata, night)

rotation = switch([({8h-20h}, day), ({20h-8h}, night)])

# AutoDJ Harbor live source
djharbor = input.harbor("remotedj", port=8003, password="xxxxx")

dj = fallback(track_sensitive = false, [djharbor, rotation])

default = fallback(track_sensitive = false,[dj, emergency])

# Original metadata update
def map_message_offline(m) =
  [("title", m["title"] )]
end

default = map_metadata(id="map_metadata:offline", map_message_offline, default)

```

thanks !

pierre

---

<div class="post-metadata">

**Author:** ![k054](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.libretime.org/k054/32/489_2.png) [@k054](https://discourse.libretime.org/u/k054)\
**Post date:** [April 8, 2026, 3:31pm UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/2 "2026-04-08T15:31:29Z")

</div>

hey!

it sounds like a liquidsoap issue and since the libretime’s liquidsoap version is very old, there might not be a way to fix it.

Since this is a new deployment I think you can give the debian 12 upgraded version a try. It hasn’t made it to the official LT github repo but al the patches are available [here](https://github.com/k054/libretime)

cheers,

---

<div class="post-metadata">

**Author:** ![ppp](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@ppp](https://discourse.libretime.org/u/ppp)\
**Post date:** [April 8, 2026, 9:32pm UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/3 "2026-04-08T21:32:55Z")

</div>

Thanks @k054 !

I’m a total newbie so I’ve no idea how I could edit my docker setup to use this version you are mentioning… Is that easily doable?  
or should I wait for the merges to happen?

---

<div class="post-metadata">

**Author:** ![k054](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.libretime.org/k054/32/489_2.png) [@k054](https://discourse.libretime.org/u/k054)\
**Post date:** [April 11, 2026, 4:22am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/4 "2026-04-11T04:22:31Z")

</div>

The patches were tested on a non-docer installation, and I think making it work on the docker container would need some additional work, so I’s say give it a try but don’t get frustrated if it doesn’t work on the first attempt.

let us know how it goes 🙂

---

<div class="post-metadata">

**Author:** ![ppp](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@ppp](https://discourse.libretime.org/u/ppp)\
**Post date:** [April 20, 2026, 10:38am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/5 "2026-04-20T10:38:46Z")

</div>

Hello, self-replying, in the end, it seems like the problem is actually the playlist not reloading when intended…

I should probably set the playlist’s _reload\_mode_ to “watch”. But I’m afraid it’s a lot of reload happening after each track’s upload. (All the tracks for the day are uploaded daily).

Ideal would be to reload once all files from the folder are uploaded… but i’m not sure how I can achieve that within liquidsoap. I’d like not having to rely on cronjob…

Any thought about that?

---

<div class="post-metadata">

**Author:** ![k054](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.libretime.org/k054/32/489_2.png) [@k054](https://discourse.libretime.org/u/k054)\
**Post date:** [April 22, 2026, 2:48am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/6 "2026-04-22T02:48:04Z")

</div>

what version of liquidsoap are you running?

---

<div class="post-metadata">

**Author:** ![ppp](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@ppp](https://discourse.libretime.org/u/ppp)\
**Post date:** [April 22, 2026, 9:46am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/7 "2026-04-22T09:46:54Z")

</div>

The docker image of libretime is the latest, V 4.5.0.

I kind of found a smoother way : instead of having pointing playlist() to the folder with audio, I’m now pointing it to a list of all audio files generated by a bash script.  
And on my local machine, 40 minutes after picking a new set of files for the day, I set another cronjob to generate this list of files as “playlist.txt”. And everything is still synchronized on the remote vps with syncthing.  
This way the files are uploaded and 40 minutes later (my estimated duration of upload of 1.4GB of audio), the playlist.txt is regenerated and uploaded too, which makes libretime reloading the playlist.

Only draw back is those 40 minutes when the files and the playlist.txt doesn’t match… but it doesn’t seems to break the stream so it seems all good for now..

---

<div class="post-metadata">

**Author:** ![k054](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.libretime.org/k054/32/489_2.png) [@k054](https://discourse.libretime.org/u/k054)\
**Post date:** [April 22, 2026, 10:39pm UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/8 "2026-04-22T22:39:56Z")

</div>

in that case it’s liquidsoap 2.1 (very old)  
so what distribution and version are you using? you could use a more recent liquidsoap either from your os repos or using opam

---

<div class="post-metadata">

**Author:** ![ppp](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@ppp](https://discourse.libretime.org/u/ppp)\
**Post date:** [April 23, 2026, 10:48am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/9 "2026-04-23T10:48:31Z")

</div>

hey thx for your message, I’m using a Docker Image and Debian 13.

But now it seems that the stream is pretty stable so i might not adventure myself in doing customization in the containers… specially since i’m not expert at all.

---

<div class="post-metadata">

**Author:** ![k054](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.libretime.org/k054/32/489_2.png) [@k054](https://discourse.libretime.org/u/k054)\
**Post date:** [April 24, 2026, 5:10am UTC](https://discourse.libretime.org/t/reload-playlist-failling/1982/10 "2026-04-24T05:10:26Z")

</div>

I’m glad it’s working now 🥳 but just to clarify I didn’t meant you could/should do anything within the container but that you can install a more recent liquidsoap version either from your repos or using opam in you base system, and stream from there to libretime’s harbor.

cheers
