Creare una web radio con Icecast e Debian!
Tra un dolce far niente e l’altro ho deciso di buttarmi nell’aiuto di un mio amico per realizzare una web radio. Una web radio seria! E per fare ciò abbiamo deciso di sfruttare totalmente materiale OpenSource: Icecast, Ices e totem, ovviamente su una comodissima debian!
A differenza di come potrete immaginare Icecast funge da smistatore del segnale della web radio. Infatti sfruttando Ices, avremo modo di inviare il nostro segnale al server principale, quest’ultimo si occuperà di gestire ed organizzare i vari segnali che riceve (ovviamente autorizzati), ed invierà a sua volta il segnale ai client che si connettono. Ma vediamo ora come installare Icecast sul nostro server. Per prima cosa, con i poteri di super utente installiamo il pacchetto relativo tramite apt:
apt-get install icecast2
Configurazione e avvio del server Icecast
Installato, procediamo con la configurazione. Per prima cosa modifichiamo il file /etc/icecast2/icecast.xml in base alle nostre esigenze. È vivamente consigliato modificare i tag che contengono i dati di autenticazione, infatti tramite questi gli altri utenti potranno trasmettere sul server i loro segnali streaming. In seguito sfrutteremo l’utente icecast source per trasmettere la nostra radio. Per fare ciò individuate e modificate (a vostro piacimento) i tag <authentication>:
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>SourcePassword</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>RelayPassword</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>AdminPassword</admin-password>
</authentication>
Abilitiamo e avviamo il nostro server Icecast che metterà a disposizione anche una comoda interfaccia web per la visualizzazione dei vari stream. Quindi procediamo aggiornando la configurazione di icecast relativa al sistema. Modifichiamo dunque il file /etc/default/icecast2 e individuata e modifichiamo la seguente riga in questo modo:
ENABLE=true
La configurazione di Icecast è ora finita! Possiamo festeggiare! Ma il lavoro vero e proprio deve ancora arrivare! Avviamo, dunque, il nostro server icecast, basterà quindi digitare il seguente comando direttamente da una shell con permessi di super utente:
/etc/init.d/icecast2 start
Configurazione ed avvio dello streaming tramite Ices
Prima di iniziare è necessario, ovviamente capire il funzionamento ed installare Ices. Questo client permette, come detto prima, di inviare il proprio segnale a icecast che lo smisterà. Ices è molto flessibile e per questo motivo il comando di avvio necessita di una configurazione. Installiamo dunque Ices con il seguente comando:
apt-get install ices2
Ora configuriamo una playlist d’esempio, in modo da permettere a ices di inviare la nostra musica. Quindi, prendendo come esempio il file /usr/share/doc/ices2/examples/ices-playlist.xml creiamo una nostra configurazione. Quindi eseguiamo i seguenti comandi:
mkdir ./ices cp /usr/share/doc/ices2/examples/ices-playlist.xml /tmp/ices/ices-config.xml gedit ./ices/ices-config.xml
E procediamo con la modifica. Per facilitare la configurazione ho deciso di commentare passo per passo i tag più importanti. Ices, ovviamente, ha un log dove vengono mostrati tutti gli errori o i problemi. Questo log, oltre a esser mostrato a schermo in caso di errore fatale, viene salvato su un file. Quindi le seguenti rige si occuperanno della modifica di tali impostazioni:
<background>1</background> <logpath>/tmp/</logpath> <logfile>ices.log</logfile>
La configurazione relativa ai dati della radio, ovvero ai metadata, avviene nei seguenti tag, dove viene settato il nome, il genere e una breve introduzione alla radio.
<stream>
<metadata>
<name>Nome dello stream</name>
<genre>Genere dello stream</genre>
<description>Una breve descrizione dello stream</description>
</metadata>
Icest può leggere l’input da inviare a icecast, tramite una playlist contenente il percorso dei file audio. In oltre può impostare una modalità di riproduzione casuale o di interruzione dello streaming alla fine di ogni file (ecc…) nei tag seguenti:
<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">/tmp/play.lst</param>
<param name="random">0</param>
<!-- if the playlist get updated that start at the beginning -->
<param name="restart-after-reread">0</param>
<!-- if set to 1 , plays once through, then exits. -->
<param name="once">0</param>
</input>
Ora modifichiamo la parte più importante di Icecast, ovvero l’autenticazione e le impostazioni del server e dello stream che manderemo. Lo streaming sarà messo a disposizione dal server icecast nel mount point. Questo, infatti, è generalmente un file contenente lo streaming diretto che invieremo. I tag da modificare sono i seguenti:
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>SourcePassword</password>
<mount>/example1.ogg</mount>
</instance>
Salvato il file, avremo finito di configurare Ices. E ora possiamo festeggiare perché il grosso è stato fatto! Ora non ci resta che creare la nostra playlist e avviare ices e mettere in onda la nostra radio! Per prima cosa digitiamo da terminale il comando per elencare i file della playlist. Ovviamente il formato utilizzato è un formato libero e, se non lo avete ancora fatto, potete trasformare i file Mp3 in Ogg. Spostiamo tutti i file OGG in una cartella temporana (in questo caso uso /tmp/ices/music) e inseriamoli nella playlist. Per fare ciò digitiamo da terminale:
mkdir /tmp/ices/musics mv ./*.ogg /tmp/ices/musics ls /tmp/ices/musics/*.ogg > /tmp/ices/play.lst
Avviamo ora il nostro amato ices con le impostazzioni appena create:
ices2 /tmp/ices/ices-config.xml
Il processo non terminerà fino a quando tutta lo streaming non sarà inviata al server icecast. Per ascoltare la vostra radio basterà recarci all’indirizzo:
In questa pagina potremo, non solo ascoltare tutti gli stream del server, ma avremo modo anche di amministrare Icecast. Ricordatevi di trasmettere materiale privo di diritti d’autore troppo restrittivi! La buona musica è sempre Open! Con un poco di pratica ed intuito diventere veri e propri RadioBlogger
Buon open streaming!
