Programando la radio
La estación funciona con el siguiente código para liquidsoap
# Directorio para guardar el log
set("log.file.path","~/radio-fin.log")
#Este archivo contiene el password
%include "nombres.liq"
#función para evitar repeticiones al recargar lista
l = playlog()
def check(r)
m = request.metadata(r)
if l.last(m) < 3600. then
log.info("Rejecting #{m['filename']} (played #{l.last(m)}s ago)")
false
else
l.add(m)
true
end
end
#Para mostrar al artista y nombre de la canción en datos
def append_title(m) =
# Leer el actuan nombre en metadatos
title = m["title"]
artist = m["artist"]
# Regresa un nuevo título en metadatos
[("title","#{artist} - #{title}")]
end
# Música
madrugada = playlist(reload_mode="watch", check_next=check, "/home/pi/Music/modorra.m3u")
manana = playlist(reload_mode="watch", check_next=check,"~/mananita.m3u")
medio = playlist(reload_mode="watch", check_next=check,"~/recargar_pila.m3u")
tarde = playlist(reload_mode="watch", check_next=check,"~/cafecito.m3u")
noche = playlist(reload_mode="watch", check_next=check,"~/a_mimir.m3u")
# Algunos jingles
jingles = playlist(reload_mode="watch", "~/peliculas_gachas.m3u")
# Si algo sale mal, se reproducirá esto
security = single("~/control.ogg")
# Contruye la programación
radio = switch([({0h-8h}, madrugada),
({8h-12h}, manana),
({12h-15h}, medio),
({15h-18h}, tarde),
({18h-0h}, noche)])
# Agrega los jingles
radio = random(weights = [1, 4],[jingles, radio])
#Cortar en caso de silencios prolongados (hay un error aquí)
radio = blank.strip(max_blank=10., min_noise=.1, threshold=-20., radio)
# Y finalmente el track de respaldo
radio = fallback(track_sensitive = false, [radio, security])
#Nomalización
radio = nrj(radio)
#Metadata
radio = map_metadata(append_title, radio)
# A transmitir
output.icecast(%vorbis,
host = "giss.tv", port = 8000,
password = radio_pass, mount = "mi_emision.ogg",
radio)