diff --git a/Dockerfile b/Dockerfile index c550b04..b1b4843 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM savonet/liquidsoap-alpine:v2.1.4 +FROM savonet/liquidsoap-alpine:v2.2.2 USER root diff --git a/main.liq b/main.liq index cfdad68..3489a03 100644 --- a/main.liq +++ b/main.liq @@ -4,25 +4,55 @@ settings.harbor.bind_addrs.set(["0.0.0.0"]) enable_replaygain_metadata() def print_meta(data) - artist = data["artist"] - title = data["title"] + a = data["artist"] + t = data["title"] - meta = json() - meta.add("artist", artist) - meta.add("title", title) + message = json() + message.add("command", "metadataChange"); + message.add("data", { artist = a, title = t}) - http.post(data=meta.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000") + http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000") () end -security = synth.all.sine(id="sine") -main_air_playlist = playlist("/music/main_air.pls") -general_playlist = replaygain(random([main_air_playlist])) -general_stream = normalize(crossfade(general_playlist)) -live_stream = input.harbor("iceberg-live", port=6000, user="djiceberg", password="hackme") - -radio = fallback(track_sensitive = false, [live_stream, general_stream, security]) +def live_start(_) + message = json() + message.add("command", "liveStarted"); + http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000") + () +end + +def live_end() + message = json() + message.add("command", "liveEnded"); + http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000") + () +end +security = single("/music/jingle.mp3") + +arctica_music = playlist("/music/arctica/music") +arctica_jingles = playlist("/music/arctica/jingles") +arctica = replaygain(rotate(weights=[5, 1], [arctica_music, arctica_jingles])) + +jellyfish_migrations_music = playlist("/music/main_air") +jellyfish_migrations = replaygain(jellyfish_migrations_music) + +general_stream = normalize(switch([ + ({13h-15h}, arctica), + ({true}, jellyfish_migrations) +])) + +live_stream = input.harbor( + "iceberg-live", + port=6000, + user="djiceberg", + password="hackme", + on_connect=live_start, + on_disconnect=live_end +) + +radio = fallback(track_sensitive = false, [live_stream, general_stream, security]) radio.on_metadata(print_meta) output.icecast(%mp3,