He creado este pequeño script, como siempre, usando Zenity como interfaz y Mplayer como reproductor (aunque podremos poner otro que se nos ocurra). Las URLs de streaming las he buscado en la red, son las principales radios españolas y alguna que otra emisora on-line.
Dicho esto tendremos instalar dichas dependencias, de lo contrario abrimos nuestro terminar y ejecutaremos la siguiente orden:
sudo pacman -S zenity mlpayer
Copiaremos el script en un archivo de texto con Leafpad, Mousepad o similar:
#!/bin/bash
# Radio 0.2
# Autor: Esteban C. Sanz
# Dependencias: zenity, mplayer
PLAYER=$(which mplayer 2>/dev/null)
function play()
{
clear
echo -e "\n\tPara volver al menu principal, pulse ENTER\n\n";
sleep 2 && "$PLAYER" 2>/dev/null "$1"
}
while : ; do
RADIO=$(zenity --list \
--title="Radio 0.1" \
--column="Emisoras" --width=300 --height=400 \
"Los 40 principales" \
"M80" \
"Cadena SER" \
"Cadena Dial" \
"Europa FM" \
"Hit FM" \
"Máxima FM" \
"Loca FM" \
"IbizaPartyRadio" \
"Ibiza Sonica Radio" \
"Formula Hit" \
"&Radio" \
"FrenchKissFM" \
"Indie Pop Rocks!" \
"FM Absolute 70's Pop" \
"FM Absolute 90's" \
"FM Absolute Pop Latino" \
"FM Absolute Samba" \
)
if [ $? -eq 0 ]; then
case $RADIO in
"Los 40 principales") play "http://10883.live.streamtheworld.com:3690/LOS40AAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"M80") play "http://13413.live.streamtheworld.com:80/M80RADIOAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Cadena SER") play "http://194.169.201.177:8085/liveser.mp3";;
"Cadena Dial") play "http://5293.live.streamtheworld.com:80/CADENADIALAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Europa FM") play "http://stream.irratia.net:8000/;";;
"Hit FM") play "http://hitfm.es.audio1.glb.ipercast.net:8000/hitfm.es/mp3";;
"Máxima FM") play "http://10913.live.streamtheworld.com:80/MAXIMAFM_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Loca FM") play "http://audio-online.net:23500/";;
"IbizaPartyRadio") play "http://listen.radionomy.com/ibiza-party-radio";;
"Ibiza Sonica Radio") play "http://www.ibizasonica.com/html5player/balanceador/sonica.php?file=listen.mp3";;
"Formula Hit") play "http://server1.emitironline.com:9400/formulahit";;
"&Radio") play "http://107.181.225.210:8000/iradio";;
"FrenchKissFM") play "http://stream.frenchkissfm.com:80";;
"Indie Pop Rocks!") play "http://xstream1.somafm.com:8090";;
"FM Absolute 70's Pop") play "http://sc-70s-128kmp3.1.fm";;
"FM Absolute 90's") play "http://sc-90s-128kmp3.1.fm";;
"FM Absolute Pop Latino") play "http://185.33.22.13:10060";;
"FM Absolute Samba") play "http://185.33.22.21:10020";;
esac
else
if [ -z $RADIO ]; then
break
fi
fi
done
Hasta aquí la versión 0.2.
He actualizado el script añadiendo nuevas funciones y emisoras. La nueva versión comprueba las dependencias faltantes y las instala en caso de no tenerlas.
#!/bin/bash
#Radio 0.3
#-----------------------------------------------------------------------
dependencias=(zenity mplayer xdotool)
for item in ${dependencias[*]}
do
if ! (pacman -Q $item >/dev/null); then lista=$lista" "$item; fi
done
USUARIO=`whoami`; if [ -n "$lista" ]; then echo $USUARIO | sudo -S pacman -S $lista --noconfirm; fi
#-----------------------------------------------------------------------
# Comprobamos conexión cada 5 segundos.
until ping -c1 google.com &>/dev/null
do
echo "No hay conexión. Reintentando..."; sleep 5
done
#-----------------------------------------------------------------------
function centrar()
{
w=$(stty size | cut -d" " -f2) # Ancho del terminal
l=${#1} # Longitud del texto
printf "%"$((l+(w-l)/2))"s\n" "$1" # Imprime cadena con el ancho adecuado (%Ws)
}
#-----------------------------------------------------------------------
function play(){
lxterminal -e reset; echo; centrar "$emisora - Para volver al menu principal, pulse ENTER"; echo
sleep 2; xdotool windowminimize $(xdotool getactivewindow) # Minimizamos ventana
"$(which mplayer 2>/dev/null)" 2>/dev/null "$1"
}
#-----------------------------------------------------------------------
reset
while :
do
emisora=$(zenity --list \
--title="Radio 0.3" \
--window-icon=$(dirname $0)/icono.png \
--column="Emisoras" \
--width=300 \
--height=400 \
"Los 40 principales" \
"M80" \
"RockFM" \
"Europa FM" \
"RNE" \
"Radio 3 RNE" \
"Radio 5 RNE" \
"Radio Clásica RNE" \
"Cadena 100" \
"Cadena Dial" \
"Cadena SER" \
"Onda Cero" \
"Cadena COPE" \
"Máxima FM" \
"Hit FM" \
"Loca FM" \
"Canal Sur Radio" \
"Canal Fiesta Radio" \
"Radiolé" \
"IbizaPartyRadio" \
"Ibiza Sonica Radio" \
"Formula Hit" \
"&Radio" \
"FrenchKissFM" \
"Indie Pop Rocks!" \
"FM Absolute 70's Pop" \
"FM Absolute 90's" \
"FM Absolute Pop Latino" \
"FM Absolute Samba" \
)
if [ $? -eq 0 ]
then
case $emisora in
"Los 40 principales") play "http://10883.live.streamtheworld.com:3690/LOS40AAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"M80") play "http://13413.live.streamtheworld.com:80/M80RADIO_SC";;
"RockFM") play "http://195.10.2.97/cope/rockfm.mp3?GKID=204d1d9ed95711e5a5e600163ea2c744&fspref=aHR0cDovL3d3dy55b3VybXV6ZS5mbS9zdGF0aW9uL3JvY2stZm0tZXNwYSVDMyVCMWEtMg%3D%3D";;
"Europa FM") play "http://stream.irratia.net:8000/;";;
"RNE") play "http://195.55.74.205/rtve/radio1.mp3?GKID=579a4c1ed95b11e5a9f500163e914f69";;
"Radio 3 RNE") play "http://195.55.74.208/rtve/radio3.mp3?GKID=8e10a39cd95b11e5a5e600163ea2c744";;
"Radio 5 RNE") play "http://195.55.74.208/rtve/radio5.mp3";;
"Radio Clásica RNE") play "http://195.55.74.205/rtve/radioclasica.mp3?GKID=c042b29cd95b11e5a9f500163e914f69";;
"Cadena 100") play "http://195.55.74.209/cope/cadena100-low.mp3?GKID=cad2ca84608a11e5a33700163e914f69";;
"Cadena Dial") play "http://5293.live.streamtheworld.com:80/CADENADIALAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Cadena SER") play "http://194.169.201.177:8085/liveser.mp3";;
"Onda Cero") play "http://ns2.streaming-live.es:8005/live";;
"Cadena COPE") play "http://195.10.2.95/copesedes/madrid.mp3";;
"Máxima FM") play "http://10913.live.streamtheworld.com:80/MAXIMAFM_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Hit FM") play "http://hitfm.es.audio1.glb.ipercast.net:8000/hitfm.es/mp3";;
"Loca FM") play "http://audio-online.net:23500/";;
"Canal Sur Radio") play "http://195.55.74.212/rtva/canalsurradio_master.mp3?GKID=02dba63460a011e5bb2000163ea2c744";;
"Canal Fiesta Radio") play "http://195.10.10.222/rtva/canalfiestaradio_master.mp3?GKID=a59517f8609f11e5bb2000163ea2c744";;
"Radiolé") play "http://10913.live.streamtheworld.com:3690/RADIOLEAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"IbizaPartyRadio") play "http://listen.radionomy.com/ibiza-party-radio";;
"Ibiza Sonica Radio") play "http://www.ibizasonica.com/html5player/balanceador/sonica.php?file=listen.mp3";;
"Formula Hit") play "http://server1.emitironline.com:9400/formulahit";;
"&Radio") play "";;
"FrenchKissFM") play "http://stream.frenchkissfm.com:80";;
"Indie Pop Rocks!") play "";;
"FM Absolute 70's Pop") play "http://sc-70s-128kmp3.1.fm";;
"FM Absolute 90's") play "http://sc-90s-128kmp3.1.fm";;
"FM Absolute Pop Latino") play "http://185.33.22.13:10060";;
"FM Absolute Samba") play "http://185.33.22.21:10020";;
esac
else
if [ -z $emisora ]
then
break
fi
fi
done
Luego lo guardamos como
radio.sh y le damos permisos de ejecución con:
chmod +x /ruta del archivo/raido.sh
y listo! ya podremos disfrutar de la música o vuestro programa favorito.
La lista de las puede ampliarse
con vuestra colaboración!
Pondré las URLs de streaming que reciba para implementarlas en el script e ir así ampliándolo.
Una vez más, espero que os sirva!
Hasta el próximo post!