AzuraCast (www.azuracast.com) è un playout radiofonico in cloud open source.
Rilasciato come container Docker è facilmente installabile su VPS economici e contiene tutto il necessario per automatizzare una webradio, dal server Icecast al sistema di report sugli ascolti, dalla gestione delle playlist alla possibilità di andare in diretta da un comune browser.
Include anche un editor grafico dei punti mix e il supporto dei sistemi di processing audio MasterME e StereoTool.
Una funzione che ancora manca è la possibilità di schedulare download automatici di rubriche, ad esempio notiziari o bollettini meteo; ho pensato di colmare il vuoto con questo script che ho chiamato autoload.sh posizionato nella cartella home del mio utente linux:
nano autoload.sh
#!/bin/bash
wget https://www.accaddeoggi.it/audio/$(date +\%Y\%m\%d)accaddeoggi.mp3 -O /home/michele/autoload/accaddeoggi.mp3
if [ $? -ne 0 ]; then
echo "qualcosa è andato storto"
cp /home/michele/tampone.mp3 /home/michele/autoload/accaddeoggi.mp3
wget "https://api.telegram.org/bot[BOT_API_KEY]/sendMessage?chat_id=[MY_CHANNEL_NAME]&text=download%20fallito" --spider
else
echo "tutto ok"
fi
chmod +x autoload.sh
Aggiungo lo script a CRON in modo da farlo eseguire ogni mattina alle 7:00
crontab -e
0 7 * * * /home/michele/autoload.sh
Lo script tenta di scaricare una rubrica, se il download fallisce sovrascrive la rubrica con il file “tampone.mp3” in modo da non mandare in onda una rubrica vecchia ed avvisa tramite Telegram che il download non è andato a buon fine.
A questo punto occorre montare la cartella dove vengono scaricati i file all’interno del container Docker: semplicemente editiamo il file docker-compose.override.yml aggiungendo un paio di righe e riavviamo il container:
sudo nano /var/azuracast/docker-compose.override.yml
services:
web:
volumes:
- /home/michele/autoload:/var/azuracast/stations/radiovegit/media/Autoload
cd /var/azuracast
sudo docker compose down
sudo docker compose up -d
Fatto! A questo punto navigando tra i media di AzuraCast troveremo una nuova cartella il cui contenuto sarà aggiornato quotidianamente.