diff options
Diffstat (limited to 'templates/srv/radio')
-rw-r--r-- | templates/srv/radio/create-playlist.sh.j2 | 22 | ||||
-rw-r--r-- | templates/srv/radio/radio.liq.j2 | 23 |
2 files changed, 45 insertions, 0 deletions
diff --git a/templates/srv/radio/create-playlist.sh.j2 b/templates/srv/radio/create-playlist.sh.j2 new file mode 100644 index 0000000..d596e8a --- /dev/null +++ b/templates/srv/radio/create-playlist.sh.j2 @@ -0,0 +1,22 @@ +#!/bin/bash + +DIR="{{ radio_music_dir }}" + +> "${DIR}/playlist.txt" +for i in "${DIR}"/tracks/*.mp3; do + title="$(basename "${i}" .mp3)" + printf "%s\n" "annotate:title=\"${title}\":${i}" >> "${DIR}/playlist.txt" +done + +if id -u icecast2 >/dev/null 2>&1 && getent group icecast >/dev/null 2>&1; then + chown -R icecast2:icecast "${DIR}" + printf "%s\n" "[inf] chowned ${DIR} with icecast2:icecast" +else + printf "%s\n" "[err] user or group icecast2:icecast does not exist, skipping chown" +fi + +if systemctl is-active liquidsoap-radio.service; then + systemctl restart liquidsoap-radio.service +else + printf "%s\n" "[err] liquidsoap-radio.service is not active, skipping restart" +fi diff --git a/templates/srv/radio/radio.liq.j2 b/templates/srv/radio/radio.liq.j2 new file mode 100644 index 0000000..0a070fe --- /dev/null +++ b/templates/srv/radio/radio.liq.j2 @@ -0,0 +1,23 @@ +#!/usr/bin/liquidsoap + +#settings.init.allow_root := true +set("log.file.path", "{{ radio_music_dir }}/logs/radio.log") + +music = playlist("{{ radio_music_dir }}/playlist.txt") +music = mksafe(music) + +def append_branding(m) = + title = m["title"] + [("title", "#{title}")] +end + +music = map_metadata(append_branding, music) + +output.icecast( + %mp3(bitrate=128), + music, + host="localhost", + port=8000, + password="{{ random_password }}", + mount="/stream", +) |