Cómo subir un programa al servidor de una Radio Libre¶
Consideraciones previas
Al leer esta guía suponemos que sabes hacer un podcast y que conoces lo que significa cuestiones
como tags, formato mp3 / ogg, etc…
Esta es una guía básica de Airtime. Para conocer todas las funcionalidades de Airtime, podéis visitar el manual de su página web, que está muy completo aunque en inglés:
Duración: Antes de subir debes asegurarte que tu programa dura 1h exactamente, ya que muchas
radios tenemso huecos exactos de 1 hora. Si dura menos añadele alguna canción al final. Su dura
más recortalo o consulta al administrador.
Tagear: Tagea bien tu programa para que podamos localizarlo en caso de necesidad o para
favorecer las automatizaciones.
- Autor: Pon el nombre de tu programa. Ponlo siempre igual, sin tildes, ni
espacios ni signos raros. No añadas nada más que el nombre del
programa
- Título: Pon el título del programa, sin tíldes ni signos raros. Ponlo siempre
igual, sin tildes, ni espacios ni signos raros.
- Albúm: Pon el nombre de la radio a la que perteneces. Ponlo siempre igual, sin
tildes, ni espacios ni signos raros.
- Nombre del archivo:* No dejes espacios, no añadas tildes ni signos raros.
Muy importante: si no subes el programa dejarás en silencio la radio.
Si crees que no vas a poder avisa al administrador para que ponga otra cosa. En caso de que no
puedas poner el programa pero sí tengas acceso al servidor pon una lista de reproducción de música
o un programa tuyo anterior.
Subir el archivo
1. Conéctate al servidor a través de la dirección, user y pass que el administrador te ha dado.
2. Rellena tus datos en la casilla de login y marca el idioma castellano.
3. Una vez que has hecho login y estás dentro acude a la pestaña AÑADIR PISTAS
4. Una vez allí pulsa el botón AGREGUE ARCHIVO y pincha en COMENZAR SUBIDA
Colocar el archivo en su horario
1. Cuando el indicador te señale que está al 100% pincha en la pestaña CALENDARIO
2. Selecciona la caja de tu programa con el botón izquierdo y pincha en AGREGAR CONTENIDO
3. Busca en la ventana que se abre tu programa y arrástralo hacia la caja de tu programa.
Comprobación
1. ¡Ya está! Pincha en OK, vuelve a CALENDARIO y verás que la barra que antes estaba
vacía ahora está llena.
Automatizar el rellenado de la parrilla en Airtime¶
En este tutorial vamos a ver cómo generar Shows de Airtime que se actualicen automágicamente cada vez que un podcast publica un nuevo programa en su web. Todo se basa en que siempre exista un único fichero por cada podcast con unos metadatos únicos, y un nombre de fichero (hemos puesto “ultimo.mp3” o “ultimo.ogg” según el formato) siempre el mismo que pueda identificar el airtime siempre que vaya a reproducir el hueco de cada reemisión.Primero de todo, tenemos que instalar y configurar podget para que se ejecute cada hora (tuto en la wiki de riseup) con todas las URL de los programas que reemitamos.
Después instalamos ffmpeg y detox, el primero para poner los metadatos que necesitamos y el segundo es un programita que nos va a quitar espacios y caracteres raros de los nombres los ficheros.
$ sudo apt-get install ffmpeg detox
Este es el script que se programa en el crontab para que se ejecute cada hora después de podget y busque si hay ficheros nuevos, los copie para que se llamen ultimo.mp3 y ponga los metadatos correctos que luego usaremos en el airtime para la automatización del rellenado de la parrilla. El script se llama “renombrar_podcast.sh” y se encuentra en la ruta
/home/continuidad/renombrar_podcast.sh
Decir que la persona que lo ha hecho ha aprendido bash lo justo para hacer esto, así que quien sepa programar bien en este lenguaje puede optimizarlo tranquilamente. Este es el código del script:
#!/bin/bash
# renombrar_podcast.sh
# version 2.2
# Renombra el último podcast de cada programa y le añade los metadatos
# Creado por lsk
# Actualizado por 10 26-11-2014 (2.0): soporte ogg
# Actualizado por lsk 01-12-2014 (2.1): [fix] añadido '$subdir' en el if que comprueba si el último fichero se llama nuevo (siempre entraba)
# Actualizado por lsk 15-04-2015 (2.2): Uso de ffmpeg en vez de eyeD3 para editar metadatos
# CONSTANTES
lista=$(ls);
PATH_REEMISIONES="/ruta/al/directorio/con/los/podcast/" # Directorio donde se alojan los subdirectorios que maneja este script
# Primero renombramos con detox
detox -r $PATH_REEMISIONES 2> tmp
rm -rf tmp 2> /dev/null
cd $PATH_REEMISIONES
# Buscamos todos los directorios en la variabvle DIR
DIRS=$(find ./* -type d)
echo "SubDirectorios guardados:"
echo $DIRS
# Recorremos cada directorio para hacer una lista de todos los subdirectorios
for subdir in $DIRS
do
echo
echo
echo
echo "********************* OTRO PODCAST ***********************"
FILES=($(ls -t $subdir/*)) # Obtener archivos listados por fecha
echo "Ficheros dentro del subdirectorio $subdir: ${#FILES}"
if [ ${#FILES} -gt 0 ]
then
puntos=`echo ${FILES[0]} | tr -dc '.' | wc -c` # Contamos el número de puntos que contiene el nombre de archivo
ultimo_fichero=`echo ${FILES[0]} | cut -d. -f-$puntos` # Cogemos el nombre de archivo
echo "ultimo fichero $ultimo_fichero"
puntos=$(($puntos + 1))
extension=`echo ${FILES[0]} | cut -d. -f$puntos` # Guardamos la extensión
if [ "$ultimo_fichero" != $subdir"/ultimo" ]
then # El último fichero en ser modificado no se llama último, por lo que hay que actualizar "ultimo"
echo "Copiando $ultimo_fichero.$extension como $subdir/ultimo.$extension"
ffmpeg -i $ultimo_fichero.$extension -y -acodec copy -metadata album="$subdir"_ultimo $subdir/ultimo.$extension
fi
fi
done
exit 0
Configurar la ejecución automatica del script con CRON
Ejecutamos
$ crontab -e
y añadimos al final del archivo las siguientes líneas
0 */1 * * * /usr/bin/podget
0 */1 * * * /home/user/renombrar_podcast.sh
Guardamos con Ctrl + o
y salimos con Ctrl + x
A partir de ahora cada hora se ejecutara podget y este script. Ya solo nos queda configurar correctamente el airtime:
Huecos linkados
A la hora de crear un hueco que se vaya a actualizar autónomamente la única diferencia es que deberemos marcar el tick “Link” en las opciones de repetición del hueco, en la ventana de edición de un Show.
(pendiente de poner una captura)
Bloques inteligentes
Para cada programa deberemos generar un bloque inteligente que coja el último audio del podcast. Para ello, estamos utilizando el metadato de “Album”. El script que hemos configurado se encarga de poner ese metadato de tal manera que seamos capaces de identificar el último audio de cada programa. Así, sabemos que siempre va a haber un único audio que contenga en la etiqueta “Album” el texto “nombre_de_programa_ultimo”.
Ejemplo
Imaginemos que queremos automatizar la emisión de un programa nuevo que se llame “EL podcast definitivo”. Lo primero será editar el fichero de configuración de podget “serverlist” y añadir la url del rss de este nuevo podcast.
$ nano ~/.podget/serverlist
Habría que añadir algo parecido a la siguiente línea:
http://web_de_el_podcast_definitivo.org/feed/ reemisiones el_podcast_definitivo
Es importante que ninguno de lo parámetros tenga espacios, porque el script de renombrado falla con ellos.
Una vez tengamos la url en el fichero “serverlist”, a la hora en punto siguiente se descargará el último audio del podcast que hemos añadido. El script de renombrado y etiquetado del último podcast va a poner el tag “Album” con el valor del nombre del subdirectorio y “_ultimo”. Así, en nuestro ejemplo el tag Album va a quedar: “./el_podcast_definitivo_ultimo”
Una vez ya exista el fichero en la carpeta de “reemisiones/el_podcast_definitivo/ultimo.mp3” podremos crear el bloque inteligente en la biblioteca de airtime, de tal manera que coja un único item en el que el tag “Album” contiene el texto “el_podcast_definitivo_ultimo”.
(pendiente captura de pantalla)
Guardamos el bloque inteligente, que ya podremos añadir al Show que hayamos creado para esta reemisión. Al estar linkado, rellenará todas las repeticiones del Show con el mismo contenido que pongamos en la primera instancia, y al irse actualizando el fichero ultimo.mp3 con podget y el script de renombrado/etiquetado cada vez que se publica la última edición del podcast, nos aseguramos que Airtime siempre reproducirá ese fichero para el resto de los tiempos sin intervención humana.
Evitar silencios en Airtime cuando no hay contenido agendado¶
Haciendo unas modificaciones en los scripts de liquidsoap de Airtime, conseguiremos que si una pista contiene silencio al final o nos hemos olvidado de agendar contenidos, salte una lista de reproducción aleatoria de música y cuñas.
Para ello debemos modificar el script que se encuentra en la ruta /usr/lib/airtime/pypo/bin/liquidsoap_scripts/ls_script.liq y en la línea 154 añadir lo siguiente:
default = amplify(id="silence_src", 0.00001, noise()) #esta línea ya está puesta
%include "autodj.liq"
Y en la misma ruta nos creamos un script nuevo de nombre autodj.liq con el siguiente contenido:
#!/usr/bin/liquidsoap
music = playlist(mode='randomize',reload=3600,reload_mode="watch","/ruta/a/la/musica")
jingles = playlist(mode='randomize',reload=1,reload_mode="watch","/ruta/a/las/cuñas")
musica_sec = mksafe(music)
cunias_sec = mksafe(jingles)
rotation = rotate(weights=[1,10],[cunias_sec,musica_sec])
default = fallback(track_sensitive=false,[strip_blank(max_blank=45.,threshold=-45.,default),rotation])
Le ponemos propietario pypo al script:
sudo chown pypo:pypo autodj.liq
Solo nos queda reiniciar el servicio de liquidsoap:
sudo /usr/lib/airtime/pypo/bin/airtime-liquidsoap restart
Esto debería hacer saltar música y cuñas aleatorias (1 cuña cada 10 canciones) cuando Airtime detecta un silencio.
ACTUALIZACIÓN ABRIL 2017Algunas radios están utilizando una versión actualizada de los plugins de Liquidsoap 1.1.1 liquidsoap-plugins-* que genera problemas en la carga de stream de audio OGG. El fallo suele ser derivado de la librería Opus liquidsoap plugins opus que es una dependencia para Airtime, por lo que no se puede desintalar directamente. En el log /var/log/airtime/pypo-liquidsoap/ls_script.log 2017/04/26 11:16:04 decoder:3 Method “OGG” accepted “application/ogg”. La solución temporal, hasta que no se actualice este error en los repositorios de paquetes tanto Debian como Ubuntu es borrar o mover esta librería y reiniciar los servicios dependientes de Airtime y Liquidsoap.
Con esto, los webstreams y otros materials de Airtime deberían volver a funcionar correctamente. |
|
Actualizando la sección de podcasting, recomiendo el uso de GREG como Podcast Aggregator. Está algo desactualizado pero se instala de una manera muy sencilla usando pip3: |
|