Due piccoli \"script\" per ascoltare le redio preferite on-line e gestirle in maniera comoda e veloce direttamente dal terminale.
Ciao, quelli che vi presento sono due piccoli "script" che permettono di avere una interfaccia minimale per ascoltare alcune radio on-line.
Li ho scritti ieri pomeriggio nell'intento di imparare un minimo di programmazione in bash e per avere una "radio" minimale, ma funzionale.
Creiamo uno script nominandolo myradio-manager
#!/bin/bash
#-----------------------------------------------------------------
# Questo programma permette di aggiungere/rimuovere le stazioni
# radio contenute nel file $HOME/.myradiorc.
#-----------------------------------------------------------------
#
#-----------------------------------------------------------------
# Variabile file $HOME/.myradiorc .
if [ -f $HOME/.myradiorc ]
then
LISTA_RADIO=$HOME/.myradiorc
MAX_ID=`wc -l $LISTA_RADIO | cut -d' ' -f1`
else
touch "$HOME/.webradiorc"
LISTA_RADIO=$HOME/.myradiorc
MAX_ID=0
fi
#-----------------------------------------------------------------
VERO=1
#-----------------------------------------------------------------
# Funzione per aggiungere una stazione radio.
add_radio()
{
NEW_ID=`echo "$MAX_ID+1"|bc`
MAX_ID=$NEW_ID
if [ "$NEW_ID" -le 9 ]
then
echo "0$NEW_ID|$NOME_RADIO|$INDIRIZZO_RADIO">>$LISTA_RADIO
else
echo "$NEW_ID|$NOME_RADIO|$INDIRIZZO_RADIO">>$LISTA_RADIO
fi
}
#-----------------------------------------------------------------
# Funzione per rimuovere una stazione radio.
rm_radio()
{
grep -v $RM_ID"|" .myradiorc > .tmp1_myradiorc
colrm 1 2 < .tmp1_myradiorc > .tmp2_myradiorc
rm .tmp1_myradiorc
nl -n rz -s "" -w 2 .tmp2_myradiorc > .myradiorc
rm .tmp2_myradiorc
}
#-----------------------------------------------------------------
# Funzione che elenca le radio disponibili.
lista_radio()
{
echo " Id Radio"
echo "----------------------"
cat $LISTA_RADIO | awk -F '|' '{ print "[\033[31m " $1 "\033[0m ] : " $2}'
}
#-----------------------------------------------------------------
while [ "$VERO" -eq 1 ]
do
clear
echo "[ 1 ] : Aggiungi una radio alla lista"
echo "[ 2 ] : Rimuovi una radio dalla lista"
echo "[ 3 ] : Esci"
echo
echo -n "Operazione da effettuare: "
read ID
case "$ID" in
1)
echo -n "Nome della radio: "
read NOME_RADIO
echo -n "Indirizzo della radio: "
read INDIRIZZO_RADIO
add_radio
;;
2)
if [ "$MAX_ID" -gt 0 ]
then
lista_radio
echo -e "[\033[34m 00 \033[0m] : Esci."
echo
echo -n "Inserire l'ID della radio da rimuovere: "
read RM_ID
if [ "$RM_ID" -ge 1 ] && [ "$RM_ID" -le "$MAX_ID" ]
then
rm_radio
MAX_ID=`echo "$MAX_ID-1"|bc`
else
if [ "$RM_ID" -ne 0 ]
then
echo "`pwd`/`basename $0` - Errore: ID non valido."
sleep 3
fi
fi
else
echo "Il file $LISTA_RADIO e' vuoto."
echo "Impossibile rimuovere radio."
sleep 3
fi
;;
3)
let VERO=0
;;
*)
echo "`pwd`/`basename $0` - Errore: codice non valido."
sleep 3
;;
esac
done
clear
Creiamo uno script nominandolo myradio-player
#!/bin/bash
#-----------------------------------------------------------------
# Questo programma permette di ascoltare la radio da terminale
# tramite un qualsiasi riproduttore multimediale (mplayer e'
# quello predefinito). La lista delle radio e' contenuta nel file
# $HOME/.myradiorc.
# E' possibile aggiungere e togliere le stazioni radio modificando
# direttamente il file o tramite il programma myradio-manager.
#-----------------------------------------------------------------
#
#-----------------------------------------------------------------
# Variabile del riproduttore multimediale.
# mplayer
if ! PLAYER=`which mplayer`
then
echo "`pwd`/`basename $0` - Errore: il riproduttore mplayer non esiste."
exit 1
fi
# vlc
#if ! PLAYER=`which vlc`
# then
# echo "`pwd`/`basename $0` - Errore: il riproduttore vlc non esiste."
# exit 1
#fi
#-----------------------------------------------------------------
# Variabile modalita' "silenziosa".
# mplayer
QUIET="-really-quiet"
# vlc
#QUIET="-I rc"
#-----------------------------------------------------------------
# Variabile file $HOME/.myradiorc .
if [ -f $HOME/.myradiorc ]
then
LISTA_RADIO=$HOME/.myradiorc
else
echo "`pwd`/`basename $0` - Errore: il file $HOME/.myradiorc non esiste."
echo "Utilizzare il programma myradio-manager per crearlo."
exit 1
fi
#-----------------------------------------------------------------
VERO=1
MIN_ID="01"
MAX_ID=`wc -l $LISTA_RADIO | cut -d' ' -f1`
#-----------------------------------------------------------------
# Funzione che elenca le radio disponibili.
lista_radio()
{
echo " Id Radio"
echo "---------------------------"
cat $LISTA_RADIO | awk -F '|' '{ print "[\033[31m " $1 "\033[0m ] : " $2}'
echo "---------------------------"
echo -e "[\033[34m 00 \033[0m] : Esci."
}
#-----------------------------------------------------------------
# Funzione che riproduce la radio selezionata.
play_radio()
{
INDIRIZZO=`grep ^$1 $LISTA_RADIO | awk -F '|' '{ print $3 }'`
$PLAYER $QUIET $INDIRIZZO
}
#-----------------------------------------------------------------
while [ "$VERO" -eq 1 ]
do
clear
lista_radio
echo
echo -n "Numero della radio: "
read ID
if [ "$ID" -ge "$MIN_ID" ]&& [ "$ID" -le "$MAX_ID" ]
then
play_radio $ID
else
if [ "$ID" -eq 0 ]
then
let VERO=0
else
echo "`pwd`/`basename $0` - Errore: codice della radio non valido."
sleep 3
fi
fi
done
clear
Rendiamo eseguibili i due file appena creati tramite il comando
A questo punto avete i due file myradio-player e myradio-manager, il primo come avrete intuito serve ad ascoltare la radio, il secondo a gestire la playlist delle radio stesse che e' contenuta nel file ~/.myradiorc.
Questo file si genera tramite lo script myradio-manager, per comodita' riporto anche quello che mi sono creato con alcune radio italiane
02|Radio Due|rtsp://live.media.rai.it/broadcast/radiodue.rm
03|Radio Tre|rtsp://live.media.rai.it/broadcast/radiotre.rm
04|Radio Italia|mms://radioitalia.wm.p1.str3.com/rditaliahq
05|Radio Deejay|mms://live.mediaserver.kataweb.it/radiodeejay?MSWMExt=.asf
06|RDS|mms://fastreal.fastweb.it/RDS
07|Radio 105|mms://151.1.245.6/1
08|Radio 101|mms://live.r101.it:1755/redundant/r101v.wma
09|RadioCapital|http://live.mediaserver.kataweb.it/capital
10|m2o|mms://213.92.19.13/m2o
11|Radio24|mms://62.196.2.90/Radio24
12|Radio Metro|http://s6.mediastreaming.it:7110/
13|RadioNumberOne|mms://217.169.108.45/wmtencoder/58247118.wmv
14|Radio Reporter|mms://live.wm9.p1.str3.com/000999_bc_a365_radioreporter_mi?MSWMExt=.asf
Il codice e' commentato, l'unica cosa che serve e' un player multimediale.
Spero che a qualcuno possa tornare utile, per eventuali suggerimenti e miglioramenti fatemi sapere, sono alle prime armi con il bash!!
Marco



Commenti
Inviato da marcosan il Ven, 01/08/2008 - 07:38.
Errata
Non so come fare per correggere la guida, quindi riporto le correzioni qui:
1) In entrambi gli script ci sono due righe con simboli strani, in realta' le righe devono essere come segue (spero che ora siano visualizzate correttamente, la mia anteprima e' corretta!!):
cat $LISTA_RADIO | awk -F '|' '{ print "[\033[31m " $1 "\033[0m ] : " $2}'
echo -e "[\033[34m 00 \033[0m] : Esci."
2) la riga
INDIRIZZO=`grep $1 $LISTA_RADIO | awk -F '|' '{ print $3 }'`
deve essere sostituita con
INDIRIZZO=`grep ^$1 $LISTA_RADIO | awk -F '|' '{ print $3 }'`
3) il titolo dell'ultimo paragrafo dovrebbe essere Concusioni
Scusate ancora, e se qualcuno sa come sia possibile correggere la guida mi faccia sapere!!
"La matematica e' l'arte di dare lo stesso nome a cose diverse."
H.Poincare (1854-1912).
Inviato da pietro il Sab, 02/08/2008 - 12:53.
Re: Errata
Ho corretto io la guida. Controlla se va bene, in caso contrario fammi un fischio.
Grazie del contributo!
Pietro
Debian Lenny on BeagleBoard
Inviato da marcosan il Lun, 04/08/2008 - 06:36.
Re: Errata
Grazie Pietro, ora mi sembra corretta!
Ciao ciao
"La matematica e' l'arte di dare lo stesso nome a cose diverse."
H.Poincare (1854-1912).
Inviato da yvesBsAs il Dom, 31/08/2008 - 18:31.
Re: Errata
Marcos83, apparentemente il tuo script richiede qualcosa che non ho, preciso che uso Ubuntu Hardy ed ascolto sovente la radio immettendo un url di questo tipo:
nel terminale, ho provato il tuo script e mi da un errore socket:
Questo appare durante l'ascolto, in corrispondenza di tagli del segnale (ho una connessione che mi vergogno a chiamare "adsl"..)
La radio si ascolta, quindi lo script funziona, ma non capisco troppo i due errori.
Se serve io sono nattato alla grande
acc. ho visto adesso qualcosa disimile quando lo avvio con il mio comando:
mplayer c'è e funziona :-o
Inviato da marcosan il Mar, 02/09/2008 - 10:12.
Re: Errata
Ciao, prima di tutto sono contento che qualcuno li abbia provati
Per altri problemi con mplayer ti direi di aprire un post e non chiedere qui, comunque:
Per il primo "errore"
Quote:
risolvi aggiungendo nel file ~/.mplayer/config
Quote:
ti servirebe solo il secondo, ma per sicurezza
Per il secondo non so perche' non mi e' mai capitato, ma in google ho visto che c'e' parecchio!
Ciao
"La matematica e' l'arte di dare lo stesso nome a cose diverse."
H.Poincare (1854-1912).