
Programar la grabación de emisoras de radio online mediante el cron
23/09/2007Update Jan/2012:
– Conversión de todo lo grabado a Ogg. Es necesario instalar el paquete «pacpl«.
Update Dic/2011:
– correcciones en la grabación de protocolos MMS para no grabar más de lo previsto.
– Actualización de algunas emisoras de radio y programas.
– Limpieza del código.
Una utilidad que uso a menudo es la grabación online de emisoras de radio (Ondacero, Puntoradio, etc), mediante la programación de esta tarea en el cron.
Para ello hago uso de este script: (salvarlo en un fichero de texto y darle permiso de ejecución)
#!/bin/bash
# Script para la grabacion de un programa de radio por internet.
# 1º) Idea original de http://www.tabernadelturco.com)
# 2º) Modificación de Pplux (www.pplux.com)
# 3º) Modificación actual: Carlos Gacimartín (cgacimartin@gmail.com)#PARÁMETROS:
#grabar_radio ondacero 120 <- graba Ondacero durante 120 minutos a partir de su ejecución inmediata, por lo que se programa desde el cron.
#grabar_radio julianenlaonda 120 /dev/null #El valor devuelto (0, 1 o 2) se guarda automáticamente en $?
if [ $? -ne 0 ] ; then
echo «- Error 3: Streamripper no encontrado. Por favor instale ‘Streamripper’ para poder ejecutar correctamente la grabación»
echo «- Error 3: Streamripper no encontrado. Por favor instale ‘Streamripper’ para poder ejecutar correctamente la grabación» >> /var/log/grabar_radio.log
exit 0
fiwhich mimms > /dev/null #El valor devuelto (0, 1 o 2) se guarda automáticamente en $?
if [ $? -ne 0 ] ; then
echo «- Error 3: mimms no encontrado. Por favor instale ‘mimms’ para poder ejecutar correctamente la grabación»
echo «- Error 3: mimms no encontrado. Por favor instale ‘mimms’ para poder ejecutar correctamente la grabación» >> /var/log/grabar_radio.log
exit 0
fi#Sanear entrada, comprobar que al menos están los dos parámetros requeridos y son válidos:
#Comprobar parámetro 1: Comprar con los valores posibles:#La hora la establece el propio script si el programa es conocido y no se ha indicado ninguna (ej: GOmaespuma, que va de 16:00 a 19:00 y no hace falta que el usuariola introduzca)
#variable software: como Streamripper no soporta el protocolo MMS y el prog. MiMMS no soporta streaming por http, hay que incluir a los dos y utilizar el que corresponda con cada emisora.software=streamripper
minutos=$2case $1 in
julian* | Julia* | JULIA* )
echo «Emisora: Gomaespuma en Ondacero»
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
software=mimms
#horaInicio=16:00 #Ver como se maneja las horas con este formato
#horaFinal=19:00
minutos=175
programa=JuliaenLaOnda;;
josemi* | JOSEMI* | Josemi* )
echo «Josemi Rodríguez Sieiro en Herrera en la Onda, Ondacero»
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
#emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
software=mimms
#minutos=27
minutos=2
programa=Josemi.Rodriguez.Sieiro.Rodriguez.Vila.Carlos.Herrera.Onda.Cero
;;rosav* | ROSAV* | larosa* | LAROSADE* )
echo «La Rosa de los Vientos, Juan Antonio Cebrián, Ondacero»
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
software=mimms
minutos=150
#horaInicio=1:30
#horaFinal=4:00
programa=LaRosaDeLosVientos
;;galicia* | GALICIA* )
echo «Galicia – Alba»
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_santiago
software=mimms
minutos=90
#horaInicio=1:30
#horaFinal=4:00
programa=OndaceroGalicia
;;ondace* | ONDACE* )
echo «Ondacero»
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
software=mimms
minutos=$2
programa=Ondacero
;;lucesenlaoscuridad* | LUCESENLAOSCURIDAD* | LucesEnLaOscuridad* | Lucesenlaoscuridad* )
echo «Luces en la oscuridad, Pedro Ribas, Puntoradio»
emisora=http://streaming.puntoradio.com
software=streamripper
programa=Luces.En.La.Oscuridad
minutos=210
;;puntor* | PUNTOR* | Puntor* | PuntoR* )
echo «Puntoradio»
emisora=http://streaming.puntoradio.com
software=streamripper
programa=Puntoradio
;;los40* | LOS40* | 40P | 40p* )
echo «Los 40 Principales»
emisora=http://a992.l783922627.c7839.e.lm.akamaistream.net/D/992/7839/v0001/reflector:22627
software=streamripper
programa=Los40principales
;;SERDIGIT* | serdigit* | SERdigit* | Serdigit* | SERDigit* )
echo «SER Digital, Chema Lapuente»
emisora=mms://a874.l784138873.c7841.e.lm.akamaistream.net/D/874/7841/v0001/reflector:38873
minutos=25
software=mimms
programa=SERdigital
;;Lascript* | lascript* | LaScript* )
echo «El cine de lo que yo te diga, Cadena SER»
emisora=mms://a874.l784138873.c7841.e.lm.akamaistream.net/D/874/7841/v0001/reflector:38873
minutos=120
software=mimms
programa=ElCineDeLoQueYoTeDiga
;;SER | ser | CadenaSer | Cadenaser | cadenaSer | cadenaser )
echo «Cadena SER»
emisora=mms://a874.l784138873.c7841.e.lm.akamaistream.net/D/874/7841/v0001/reflector:38873
software=mimms
programa=CadenaSER
;;m80 | M80 )
echo «M80»
emisora=http://a624.l857421577.c8574.e.lm.akamaistream.net/D/624/8574/v0001/reflector:21577
software=streamripper
programa=M80
;;Cadenadial | cadenadial | CadenaDial | cadenaDial )
echo «Cadena Dial «
emisora=http://a371.l1136133678.c11361.e.lm.akamaistream.net/D/371/11361/v0001/reflector:33678
software=streamripper
programa=CadenaDial
;;MaximaFM | MaxFM | maximafm | maximaFM | maxfm | Maximafm )
echo «Maxima FM «
emisora=http://a225.l857520540.c8575.e.lm.akamaistream.net/D/225/8575/v0001/reflector:20540
software=streamripper
programa=MaximaFM
;;rne1 | rneradio1 | RNE1 | RNEradio1 | RNERadio1 )
echo «Radio Nacional de España Radio 1 «
emisora=http://a729.l830022151.c8300.e.lm.akamaistream.net/D/729/8300/v0001/reflector:22151
software=streamripper
programa=RNE1
;;rneradioclasica | RNEradioclasica | RNERadioClasica | radioclasica | RadioClasica | radioClasica | Radioclasica )
echo «Radio Nacional de España Radio Clásica «
emisora=http://a1247.l910622804.c9106.e.lm.akamaistream.net/D/1247/9106/v0001/reflector:22804
software=streamripper
programa=RNE_RadioClasica
;;rneradio3 | RNEradio3 | RNERadio3 | radio3 | Radio3 )
echo «Radio Nacional de España Radio 3 «
emisora=http://a1830.l830120550.c8301.e.lm.akamaistream.net/D/1830/8301/v0001/reflector:20550
software=streamripper
programa=RNE_Radio3
;;rneradio4 | RNEradio4 | RNERadio4 | radio4 | Radio4 )
echo «Radio Nacional de España Radio 4 «
emisora=hmms://a783.l1041530780.c10415.e.lm.akamaistream.net/D/783/10415/v0001/reflector:30780
software=mimms
programa=RNE_Radio4
;;rneradio5 | RNEradio5 | RNERadio5 | radio5 | Radio5 )
echo «Radio Nacional de España Radio 5»
emisora=http://a1360.l910520572.c9105.e.lm.akamaistream.net/D/1360/9105/v0001/reflector:20572
software=streamripper
programa=RNE_Radio5
;;rneradioexteriordeespaña | RNEradioexter* | radionacionaldeespañaradioext* | radioexter* | RadioExt* | Radioext* )
echo «Radio Nacional de España Radio Exterior»
emisora=http://a259.l773120483.c7731.e.lm.akamaistream.net/D/259/7731/v0001/reflector:20483
software=streamripper
programa=RNE_radioexterior
;;RadioMarca | radiomarca | Radiomarca | radioMarca | Marca | marca )
echo «Radio Marca «
emisora=mms://wmedia.recoletos.es/radiomarca
software=mimms
programa=RadioMarca
;;Cadena100 | cadena100 | cad100 | c100 | cadenacien | CadenaCien | cadenaCien | Cadenacien )
echo «Cadena 100 «
emisora=mms://live.c100.edgestreams.net/reflector:34743
software=mimms
programa=Cadena100
;;COPE | cope | Cope | CadenaCop* | CadenaCOP* | cadenacope |CADENACOPE )
echo «COPE «
emisora=mms://live.cope.edgestreams.net/reflector:34744
software=mimms
programa=COPE
;;EuropaFM | europaFM | Europafm | europafm )
echo «Europa FM «
emisora=mms://a1537.l507234296.c5072.e.lm.akamaistream.net/D/1537/5072/v0001/reflector:34296
software=mimms
programa=EuropaFM
;;mqm* | MQM* | Mqm* )
echo «MQM Dance «
emisora=http://win20ca.audiovideoweb.com/avwebwinlive8161
software=streamripper
programa=MQMDance
;;Kiss* | KISS* | kiss*)
echo «Kiss FM «
emisora=http://win60ny.audiovideoweb.com/ny60winlive7001?WMThinning=0
software=streamripper
programa=KissFM
;;RadioEusk* | RADIOEUSK* )
echo «Radio Euskadi»
emisora=mms://a943.l881320881.c8813.e.lm.akamaistream.net/D/943/8813/v0001/reflector:20881
software=mimms
programa=RadioEuskadi
;;OnaC* | onac* | ONAC* )
echo «Ona catalana» #Para los más susceptibles, catalana va en minúculas al no ser nombre propio. Debería ser Cataluña, Euskadi, Madrid…
emisora=mms://217.11.251.145/onacatalana
software=mimms
programa=»OnaCatalana» #Para los más susceptibles, aquí si que «Catalana» va en mayúsculas para facilitar la identificación.
;;OndaMadrid | Ondamadrid | ondamadrid | ondaMadrid | ONDAMADRID )
echo «Onda Madrid»
emisora=mms://a1644.l1904942498.c19049.e.lm.akamaistream.net/D/1644/19049/v0001/reflector:42498
software=mimms
programa=»OndaMadrid»
;;* )
echo «Emisora no reconocida, disponibles: «
echo «- Error 1: Emisora o programa desconocido: «$1 > /var/log/grabar_radio.log # /var/log/grabar_radio.log
exit 0
;;esac
# Tercer parámetro: tiempo a grabar.
#Directorio donde grabarlo (’.’ = actual) Como por cada minuto se utiliza 1mega de espacio, en un futuro se puede comprobar el espacio en el destino para avisar de si se podrá salvar o no.
if [ «$3» != «» ]; then
dir =$3
else
dir=/home/carlos/radio
fi#Convertirlo en OGG, estándar superior al ASF y MP3, mayor compresión y calidad, de código fuente abierto y gratuito. Actualmente todos los reproductores ya incluyen este formato, y los que su firmware es actualizable suelen disponer de una actualización para poder reproducirlo.
sync
segundos=`expr 60 \* $minutos`if [ «$software» == «streamripper» ] ; then
nombre=${dir}/»$programa»_20`date +%y_%m_%d`.mp3
streamripper $emisora -l $segundos -a $nombre -d $direlif [ «$software» == «mimms» ] ; then
nombre=${dir}/»$programa»_20`date +%y_%m_%d`.asf#mplayer’s «endpos» options is not working in this version for streams, so applying workaround
mplayer -really-quiet -nolirc -noframedrop -dumpfile $nombre -dumpstream $emisora &
PID=»$!»
sleep «${segundos}»
kill «${PID}»
fi
sync
pacpl -t ogg $nombre#OTRAS OPCIONES SON:
#mplayer -dumpstream salida mms://a17.l507220396.c5072.e.lm.akamaistream.net/D/17/5072/1006358696/reflector:20396
#para el tema de la calidad de sonido, lo saca en ASF.echo «Grabación de » $nombre «realizada con éxito y guardada en » $PWD
echo «Grabación de » $nombre «realizada con éxito y guardada en » $PWD > /var/log/grabar_radio.log#Añadir opción de mandar el fichero por SCP u otro medio a otro ordenador.
Como se ve, los comandos son muy sencillos, indicándose la emisora y el nº de minutos a grabar, nada más, empezando a grabar en cuanto se ejecutase el script. Conectaría con la emisora online según el protocolo (stream o mms) e iría guardando la emisión (en MP3 y ASF respectivamente). Ejemplos:
1º) Grabar la emisora Ondacero durante 10 minutos.
#./grabar_radio.sh Ondacero 10
2º) Grabar el programa «Josemi»
#./grabar_radio.sh josemi
En este segundo caso se puede ver la personalización de un programa, modificando el script. Éste ya sabe la cantidad de minutos a salvar y con qué nombre guardarlo:
echo "Josemi Rodríguez Sieiro en HErrera en la Onda, Ondacero"
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
software=mimms
#horaInicio=11:05
#horaFinal=11:32
minutos=27
programa=Josemi
Se puede modificar el script a voluntad.
Por ultimo, la gran utilidad de esto es poder grabar las emisiones sin que tengamos que intervenir, igual que se hace con un DVD o VHS. Para ello se puede utilizar el cron:
#sudo crontab -e
Añadiendo una línea por cada programa que se desee grabar. Para entender el programador de tareas de GNU/Linux Cron se puede consultar este enlace.. Dos ejemplos de programaciones serían:
Grabación de Ondacero (lo que estén emitiendo) durante diez minutos los sábados y domingos a la 1:30 am.
30 01 * * 7,1 /home/carlos/radio/grabar_radio.sh Ondacero 10
Grabación del programa de Josemi de lunes a viernes a las 12:07pm.
07 12 * * 1-5 /home/carlos/radio/grabar_radio.sh josemi
Actualización 2009/10/03:
– Corrección de la URL de Ondacero.
– Sustitución de «mimms» por «mplayer»
Actualización 2011/12/11:
– Corrección de la URL de Ondacero (oc_convencional -> oc_madrid).
– Añadido Ondacero Galicia.
Publicado en Uncategorized | Etiquetado script linux ubuntu kubuntu grabar radio ondacero cope |
9 comentarios
Deja una respuesta Cancelar la respuesta
Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.
Hola. Te felicito por el post. A ver, estoy usando MINT, recién instaladita, que por cierto es una joya. Cuando ejecuto el script después de haber instalado mimms, me dice:
./radio.sh: line 291: /var/log/grabar_radio.log: Permiso denegado
¿Qué ocurre?
Gracias
Hola,
el problema parece estar en que no puedes escribir en ese fichero. La ruta /var/log generalmente solo es «escribible» por el usuario root. Soluciones:
a) Que ejecutes el script como root (sudo ./radio.sh etc etc)
b) Que cambies esa ruta a algo así tipo /home/joseluis/logDeLaRadio.log
saludos.
Ok. Lo prueba. Gracias por la respuesta tan rápida. Aquí http://joseluisredon.wordpress.com deliro un poco; por si quieres visitarme.
There’s a terrific amount of knegoldwe in this article!
Cuando lo ejecuto como root contesta:
“Emisora no reconocida, disponibles: “
Muy bueno el script
las siguientes líneas
echo “Grabación de ” $nombre “realizada con éxito y guardada en ” $PWD
echo “Grabación de ” $nombre “realizada con éxito y guardada en ” $PWD > /var/log/grabar_radio.log
se podrían cambiar por:
echo “Grabación de ” $nombre “realizada con éxito»
echo “Grabación de ” $nombre “realizada con éxito «>> /var/log/grabar_radio.log
lo del pwd no va, vamos, siempre dice el directorio actual, a menos ejecutándolo a mano
y lo de >> en lugar de > para que lo añada al log, de la otra forma cada vez escribes el log desde cero.
lo he probado y va de maravilla, gracias.
Inco.
Juraría que streamripper no funciona con mms.
Se puede usar mplayer -dumpstream y creo que también vlc.
A perfect reply! Thanks for taking the trbleuo.