Archive for the ‘Software y multimedia’ Category

h1

Mplayer supera el tiempo de grabación en streams / Mplayer exceeds the recording time recording streams

18/12/2011

Mplayer 1.0rc3-4.4.4 no graba correctamente, a pesar del parámetro «endpos», streams de Internet si se le especifica una duración determinada, sobrepasándola habitualmente. Como workaround se puede embeber mplayer en un script con una duración determinada, matando el proceso tras la duración establecida de la grabación:

#!/bin/bash
PID="$!"
segundos=100
emisora=mms://ondacerolivewm.fplive.net/ondacerowmlive-live/oc_madrid
mplayer -really-quiet -nolirc -noframedrop -dumpfile prueba.asf -dumpstream $emisora &
PID="$!"
sleep "${segundos}"
kill "${PID}"

Fuente: http://lists.mplayerhq.hu/pipermail/mplayer-users/2008-June/073285.html

h1

No se reproduce MP3 en Ubuntu

05/12/2011

Si no se consigue escuchar archivos MP3 en Ubuntu pese a probar con varios reproductores y poderse escuchar otros formatos, es necesario habilitar los repositorios «universe» (sources.list) e instalar los siguientes paquetes:

$ sudo aptitude install ubuntu-restricted-extras libxine1-ffmpeg

h1

Errores Latex «I can’t find file ptmr7t» y «File stfloats.sty not found»

12/10/2010

Utilizando el editor de textos Latex, se pueden producir los siguientes problemas atendibles con las correspondientes soluciones:

#1
kpathsea: Running mktexmf ptmr7t
! I can't find file `ptmr7t'.
<*> ...:=ljfour; mag:=1; nonstopmode; input ptmr7t
Please type another input file name
! Emergency stop.
<*> ...:=ljfour; mag:=1; nonstopmode; input ptmr7t

Solución:
$ sudo apt-get install texlive-fonts-recommended
$ sudo apt-get install texlive-fonts-extra

#2
! LaTeX Error: File `stfloats.sty' not found.

Solución:
$ sudo apt-get install texlive-latex-extra

#3
! LaTeX Error: File `IEEEtran.cls' not found.

Solución:
$ sudo apt-get install texlive-publishers

h1

wget y errores HTTP 403: diagnóstico de User-Agent y permisos

14/09/2010

Revisión (octubre de 2026): el ejemplo original corresponde a una dirección de Google News utilizada en 2010, que puede haber cambiado. Un código HTTP 403 Forbidden significa que el servidor rechaza la petición; no demuestra por sí solo que la causa sea el User-Agent.

Revisa las cabeceras, la URL actual, la autenticación, los límites de acceso y las condiciones del servicio. wget --user-agent='MiCliente/1.0' solo cambia la cabecera del cliente: no garantiza acceso ni debe utilizarse para eludir restricciones.

Relacionado: descarga de contenidos y scripts históricos.


Si al intentar descargar un RSS o contenido de Internet por wget se produce en siguiente error:

carlos@adscompc02:~/Descargas$ wget "http://news.google.es/news?pz=1&cf=all&ned=es&hl=es&output=rss"
--2010-09-14 11:51:23-- http://news.google.es/news?pz=1&cf=all&ned=es&hl=es&output=rss
Resolviendo news.google.es... 209.85.227.147, 209.85.227.105, 209.85.227.104, ...
Conectando a news.google.es|209.85.227.147|:80... conectado.
Petición HTTP enviada, esperando respuesta... 403 Forbidden
2010-09-14 11:51:23 ERROR 403: Forbidden.

es debido a que el servidor web está configurado para rechazar las conexiones de clientes con User-agent «wget» ó similares «wget123», etc. Se soluciona cambiando el User-agent de wget:

carlos@adscompc02:~/Descargas$ wget -U hola "http://news.google.es/news?pz=1&cf=all&ned=es&hl=es&output=rss"
--2010-09-14 11:52:49-- http://news.google.es/news?pz=1&cf=all&ned=es&hl=es&output=rss
Resolviendo news.google.es... 209.85.227.106, 209.85.227.99, 209.85.227.103, ...
Conectando a news.google.es|209.85.227.106|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 51756 (51K) [application/xml]
Guardando en: «news?pz=1&cf=all&ned=es&hl=es&output=rss.7»

100%[===============================================>] 51.756 --.-K/s en 0,06s

2010-09-14 11:52:50 (790 KB/s) - «news?pz=1&cf=all&ned=es&hl=es&output=rss.7» guardado [51756/51756]

h1

Procesar imágenes por lotes en Linux con ImageMagick

06/09/2010

Actualización de octubre de 2026: ImageMagick sigue siendo útil para procesar imágenes por lotes, pero mogrify modifica por defecto los archivos de origen. Haz una copia o utiliza un directorio de salida antes de ejecutarlo sobre fotografías que quieras conservar.

En ImageMagick 7 la interfaz moderna utiliza magick; en instalaciones anteriores también pueden existir convert y mogrify. Para convertir un archivo sin sobrescribir el original, un ejemplo básico es magick imagen.jpg -resize 640x salida.jpg, siempre que tu instalación admita esa sintaxis. Evita ejecutar sobre originales un comando comodín hasta haber probado el resultado en una muestra.


Si se desea modificar fotografías en bloque en GNU/Linux de manera rápida, se puede utilizar la herramienta imagemagick :

sudo apt-get install imagemagick

Instalada, se pueden utilizar varias opciones para modificar las imagenes de un directorio facil, rápidamente y en bloque:

mogrify -resize 640 *.jpg
convert image.jpg newImage.gif
convert -quality 80% *.jpg
convert -resize 750×500 *.jpg
convert -resize 750×500 -quality 80% *.jpg

Fuentes: Smokinglinux, Codejacked.

h1

Como extraer audio de un MP4 (MP4 a MP3)

19/06/2010

Si se desea extraer el audio de un video en formato MP4, en GNU/Linux se puede utilizar el siguiente sencillo método:

Instalar «faad» y «lame»: carlos@WhenIGrewUp:~$ sudo apt-get install faad lame Ejecutar este comando: carlos@WhenIGrewUp:~$ faad  -o - miVideoOrigen.MP4| lame - miCancionDestino.mp3

Fuente: ScottKlarr 

h1

Error Firefox: Could not find compatible GRE between version 1.9.0.1 and 1.9.0.*.

22/09/2009

Si al ejecutar Firefox se produce este error en la consola:

carlos@WhenIGrowUp:~/personal$ firefox
Could not find compatible GRE between version 1.9.0.1 and 1.9.0.*.

Es necesario realizar los siguientes pasos:

1º) Comprobar paquete «xulrunner»

$ dpkg -l xulrunner-1.9
(...)
ii xulrunner-1.9 1.9.0.3+nobinonly- XUL + XPCOM application runner

2º) Instalarlo si no se dispone de él:

$ sudo apt-get install xulrunner

3º) Ejecutar:

$ xulrunner --register-global

Y volver a ejecutar Firefox.

Fuente: Launchpad Ubuntu

h1

Importar ficheros de correo (Mbox, PST, etc) en Gmail

13/11/2008

Para facilitar al Gran Hermano su labor podemos importar en nuestras cuentas de Gmail ese fichero de correo de cientos, a veces gigas, de correo que ya es inamovible de nuestro ordenador (y por tanto inaccesible desde otras localizaciones).

Para ello existe GML (GoogleMail Loader), un script en Python para procesar ficheros de correo en formato Mbox (Netscape, Mozilla Thunderbird), MailDIR (Qmail), MMDF (Mutt), NH (NHM) o Babyl (Emacs Rmail). El formato PST de Outlook se puede transformar facilmente con la herramienta «readPST» a formato Mbox.

GML se puede descargar desde aquí, donde también hay versión para Windows. Tras descomprimirlo, se ejecuta mediante el intérprete de Phyton:

carlos@WhenIGrewUp:~/gmlw$ python gmlw.py

La ejecución es muy sencilla, se muestra un GUI en el que hay que elegir la dirección de correo, el fichero almacén y el login en el SMTP correspondiente. Posteriormente el proceso comenzará incorporándose los correos en Gmail con la fecha y destinatarios originales. Lo único que cambiará será el remitente si utilizas el smtp de Gmail, que incluirá tu dirección de Gmail pero mantendrá el nombre del remitente verdadero para facilitar el seguimiento (límites de la seguridad frente al spam en los SMTP’s habituales). Es un proceso automático y lento.

En esta portabilidad de correos siempre es recomendable que antes de empezar que cambies tu contraseña de Gmail. Ésta ya es visible en la GUI y en la consola. Si utilizas como SMTP el de Gmail, viajará encriptada. Posteriormente puedes volver a establecer tu contraseña anterior.

Posibles problemas:

a) Al iniciar una importación, se produce el siguiente problema:
mBox (Netscape, Mozilla, Thunderbird) at location /home/carlos/tmp/Inbox Opened Successfully.
Done. Stats: 0 success 0 error 0 skipped.

El fichero no es un Mbox, pese a que el aviso indique que si.

b) El fichero está corrupto o no lo reconoce.
Se puede aplicar un programa de limpieza del fichero descargable aquí.

carlos@WhenIGrewUp:~/tmp$ python cleanmbox.py varios
Reading messages from 'varios'
Processing 55 messages... done.
Wrote to 'varios.cleaned'
Cleaned 1 mailbox(es).

c) Al ejecutarlo se produce el siguiente error:
carlos@WhenIGrewUp:~/gmlw$ python gmlw.py
Traceback (most recent call last):
File "gmlw.py", line 42, in
import os, sys, mailbox, smtplib, time, Pmw, webbrowser, tkFileDialog, re
ImportError: No module named Pmw

en caso de obtener ese error, se necesitará instalar la librería correspondiente:
carlos@WhenIGrewUp:~/gmlw$ apt-cache search pmw
python-pmw - Pmw -- Python MegaWidgets
python-pmw-doc - Pmw -- Python MegaWidgets
carlos@WhenIGrewUp:~/gmlw$ sudo apt-get install python-pmw

Al estar descontinuado GML, han surgido forks o modificaciones de este programa. A parte, hay otra opción como Gexodus.

h1

Error al instalar Zattoo en K/Ubuntu 64

03/05/2008

Al instalar Zattoo en Kubuntu 64bits se puede dar el siguiente problema:


carlos@WhenIGrewUp:~$ sudo dpkg -i --force-architecture zattoo.deb
carlos@WhenIGrewUp:~$ zattoo_player
zattoo_player: error while loading shared libraries: libgnomeui-2.so.0: cannot open shared object file: No such file or directory

El problema consiste en la ausencia de librerías de 32 bits requeridas por Zattoo.
Se soluciona mediante «getlibs»


carlos@WhenIGrewUp:~$wget http://www.boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb
carlos@WhenIGrewUp:~$sudo dpkg -i getlibs-all.deb
carlos@WhenIGrewUp:~$sudo getlibs /usr/bin/zattoo_player
libgnomeui-2.so.0: libgnomeui-0
libbonoboui-2.so.0: libbonoboui2-0
libgnome-keyring.so.0: libgnome-keyring0
libgnome-2.so.0: libgnome2-0
libgnomevfs-2.so.0: libgnomevfs2-0
libgtkglext-x11-1.0.so.0: libgtkglext1
libgdkglext-x11-1.0.so.0: libgtkglext1
libgtkembedmoz.so.0d: libxul0d
libxpcom.so.0d: libxul0d
libmozjs.so.0d: libmozjs0d
libplds4.so.0d: libnspr4-0d
libplc4.so.0d: libnspr4-0d
libnspr4.so.0d: libnspr4-0d
libcurl.so.3: libcurl3
libxul.so.0d: libxul0d
The following i386 packages will be installed:
libbonoboui2-0
libcurl3
libgnome2-0
libgnome-keyring0
libgnomeui-0
libgnomevfs2-0
libgtkglext1
libmozjs0d
libnspr4-0d
libxul0d
Continue [Y/n]?
Downloading ...
Installing libraries ...
New depedencies have been detected
libdbus-glib-1.so.2: libdbus-glib-1-2
libavahi-glib.so.1: libavahi-glib1
libavahi-common.so.3: libavahi-common3
libavahi-client.so.3: libavahi-client3
The following i386 packages will be installed:
libavahi-client3
libavahi-common3
libavahi-glib1
libdbus-glib-1-2
Continue [Y/n]?
Downloading ...
Installing libraries ...
carlos@WhenIGrewUp:~$

h1

Grabar radio online automáticamente con cron en Linux: script histórico

23/09/2007

Actualización de octubre de 2026. Este script se creó y revisó entre 2007 y 2012. Incluye flujos mms://, nombres de programas, direcciones de emisoras y herramientas que pueden haber dejado de funcionar. Comprueba los flujos actuales y la disponibilidad de las herramientas antes de reutilizarlo.

El script escribe archivos y puede borrarlos al aplicar sus rutinas de limpieza: pruébalo antes en un directorio aislado con datos prescindibles. Para programar tareas con cron, utiliza rutas absolutas y registra explícitamente los errores. Solo grabes o reutilices emisiones cuando tengas derecho a hacerlo.

Relacionado: escuchar radio con retraso utilizando VLC.


Update 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
fi

which 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=$2

case $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 $dir

elif [ «$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.