martes, 7 de julio de 2009

Nuevas maneras de grabar la radio

La verdad es que hace bastante que no escucho la radio. No es un medio que me guste demasiado, no sé por qué, pero le tengo algo de manía irracional :p. El caso es que una amiga me ha dicho que si sabía grabar canciones de una emisora de radio virtual, y no tenía ni idea de cómo hacerlo. Al fin y al cabo, no grabo canciones de la radio desde mis míticos remixes del programa DiscoCross xD!


Y la verdad: ahora buscábamos algo más sofisticado xD! Así que me he puesto manos a la obra, y he descubierto que el VLC (que por cierto, acaba de sacar su versión 1.0.0), es capaz de infinitas proezas, entre las que se encuentra la de volcar al disco duro parte de una emisora por Internet.

Para simplificar (según se mire) el proceso, he realizado un sencillo script basado en esta habilidad del VLC para poder grabar una emisora de radio sin complicarnos mucho la vida...


Como podemos ver en la interface, el script (al que he llamado gRadio, espero no estarle quitando el nombre a ninguna aplicación de Gnome...) es muy fácil de usar: sólo hay que poner la dirección de la emisora, y decirle si quieres que empiece a grabar ahora, o a cierta hora.

El comando de VLC principal que usa el script es el siguiente:


vlc EMISORA --sout '#transcode{acodec=mp3,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=ps,dst=DIRECCIÓN/Grabacion.mp3}}'



El cual podemos utilizar (tras completar con la dirección de la emisora y la dirección donde queramos guardarlo) sin necesidad de usar el script que os presento en esta entrada. He hecho que se grabe en mp3 para intentar que ocupe menos espacio el archivo de sonido que creemos... sin embargo, es posible que tal y como está el script necesitéis descargar algunos codecs (con respecto a los que vienen por defecto en Ubuntu, por ejemplo) para que os funcione bien... Si abrimos el archivo generado con TOTEM, por ejemplo, automáticamente nos buscará el codec necesario.

Otra opción sería usar WAV (he dejado comentada esta línea en la versión actual del script, para que podáis pasar de una opción a otra comentando - es decir, poniendo delante el símbolo "#" - la que no uséis, y descomentando la que sí vayáis a usar):


vlc EMISORA --sout '#transcode{acodec=s16l,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=wav,dst=DIRECCIÓN/Grabacion.wav}}'



Para todos los que no quieran guarrear en la línea de comandos, aquí os dejo mi script:


#!/bin/bash
#
# Este script intenta simplificar el proceso de grabar un programa de una radio por Internet mediante el programa VLC para Linux.
#
# Realizado por Astaroth (O.R.G) - http://astarothsworld.blogspot.com
#
# Funcion de lectura de datos de la interface gráfica:
function def {
    echo $ig | grep -o "$1\=\"[[:print:]]*\"" | sed 's/'$1'\=\"//g' | sed 's/\"//g' | awk '{print $1}'

}
# Función para grabar la radio en sí:
function gRadio {
    # Grabación en mp3 (ocupa menos, pero el codec que usa creo que es un poco raro...)
    vlc $Emisora --sout '#transcode{acodec=mp3,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=ps,dst='$dire'/Grabacion de las '$Hh':'$Hm'.mp3}}'
    # Grabación en wav (más pesado, pero quizá más editable...)
    #vlc $Emisora --sout '#transcode{acodec=s16l,ab=128,channels=2}:duplicate{dst=display,dst=std{access=file,mux=wav,dst='$dire'/Grabacion de las '$Hh':'$Hm'.wav}}'

}
# Valores iniciales, variables leidas, y otras chuminadas:
k=1
ig=`gtkdialog -g if/Inter.glade -p window1`
dire=`pwd`
EXIT=`def EXIT`
Emisora=`def Emisora`
H=`def H`
M=`def M`
Hp=`echo "$H$M"`
Hora=`def Hora`
Ahora=`def Ahora`
# Si aceptamos, el programa se ejecuta, si no, salimos:
if [ $EXIT = 1 ] ; then
    # Bucle de muestreo del tiempo:
    while [ $k = 1 ] ; do
      # Hora actual:
      Hh=`date +%H`
      Hm=`date +%M`
      Ha=`echo "$Hh$Hm"`
      # Si no queremos esperar a que llegue ninguna hora:
      if [ $Ahora = "true" ] ; then
        Hp=$Ha

      fi
      # Riiiiiing! Hora de grabar esa canción que tanto te mola:
      if [ $Ha = $Hp ] ; then
        clear
        echo "Son las $Hh:$Hm, que empiece el espectáculo ;)!"
        gRadio
        k=0

      else
        resto=`echo "( $H - $Hh ) * 60 + ( $M - $Hm )" | bc`
        if [ $resto -lt 0 ] ; then
          resto=`echo "$resto + 24 * 60" | bc`

        fi
        clear
        echo "Son las $Hh:$Hm, lo has programado para que empiece a grabar a las $H:$M."
        echo "Ten paciencia, aún te queda(n) $resto minuto(s)..."

      fi
      # Esperamos un rato, que el pesado de mi hermano ASEGURA que si lo tengo corriendo contínuamente tira mucho del ordenador ^o)...
      sleep 30

    done

fi



El cual necesita de la interface gráfica que he realizado en glade3 (la que veíais en el screenshot de más arriba). Podéis descargaros todo junto de este enlace:




Como es lógico, necesitaréis también el VLC (el script es básicamente un comando de ese programa), pero es una aplicación muy común, que podéis encontrar gratis en la página del proyecto.

Y a grabar la música que esté sonando ahora, o la que vaya a sonar a partir de cierto momento en vuestra emisora por Internet favorita ;)! Os dejo unas cuantas que he testado yo mismo con este script (por cortesía de el foro de myblackberry.com):

CompartirGrupo

2 comentarios:

  1. Hola!
    Yo de vez en cuando sí que escucho la radio, sobre todo Rock&Gol, a Piri! jaja.
    Me guardo esta info, me interesa ;)

    Por el momento ni Nokia ni espada, cereales para mi gato, que como le falten nos devora a todos (mientras, sigo soñando que me sobra el dinero y que estoy en Egipto :P!)

    "Las guerreras dañadas son peligrosas porque saben que pueden sobrevivir." ...
    Incluso en esa sala especial que teneis!

    No te preocupes, aquí tenemos una carnicería donde se aprovecha todo, así que muerto también serás de utilidad, jaja!

    Saludos! ;)

    ResponderEliminar
  2. Venga Astaroth, sal de debajo de la mesa ya, ten un poco de dignidad! jajaja
    Tranquilo, no te dolerá, será un corte limpio, zas! No te dará tiempo ni a maldecir el día que me encontré con tu blog, te lo prometo, aaajajaja.

    Claro que soy del bando de los buenos, por quién me has tomado, por una diabliya o qué? jajaja

    Duerme tranquilo esta noche, si quieres hasta puedes dejar la puerta abierta. Todavía me haces falta vivo, así que deja la espada en su sitio, ;)

    Dulces sueños! jaja

    ResponderEliminar

Querido astarothista!,

Si te ha gustado la entrada y quieres dejar constancia de ello, tienes alguna sugerencia para completarla o corregirla, quieres mostrar tu opinión respecto a algo de lo que se haya hablado en esta entrada (con respeto) o simplemente quieres dejarme un mensaje a mi o a la comunidad, no dudes en comentar ;)!

Recuerda que también estamos en Facebook y en Google+.