Como tuitiar lo que está sonando en nuestra radio con Radit automáticamente

21 julio 2014

Esta entrada se podía haber llamado también Radit+Twidge+script+Cron, pero creo que no se entendería demasiado, la nota será un poco larga ya que a pesar de ser una idea simple conlleva varios pasos.

Las redes sociales son bien importantes para cualquier medio de comunicación y nuestra radio no es una excepción, ya sea comunitaria o comercial.
Nos vamos a centrar en este caso en Twitter, una red que destaca cuando de medios de comunicación se trata.

La idea es que podamos tuitiar lo que está sonando en la radio cada cierto tiempo de forma automática, en nuestro caso usamos Radit como programa de automatización, Radit genera un archivo de texto llamado Currentsound.txt que es sobrescrito por el programa cada ves que cambia el tema que reproduce, entonces de esto se deduce que debemos poder leer el contenido de ese archivo y tuitiarlo.

Para esto vamos a hacer uso de dos herramientas y un script bash (no se asusten que no es nada difícil) lo primero es contar con alguna utilidad para Twitter que nos permita enviar el tuit, aquí es cuando viene en nuestra ayuda Twidge. Twidge es un programa que funciona por linea de comandos y que es muy flexible a la hora de interactuar con scripts como veremos mas adelante.

 Vamos a instalar entonces Twidge, abrimos una terminal y escribimos lo siguiente:

sudo apt-get install twidge

Listo ya lo tenemos instalado, ahora en un navegador iniciamos sesión con la cuenta de Twitter que queremos usar para publicar.

Nuevamente desde una terminal ponemos:

twidge setup

Cuando introducimos este comando en la terminal se nos dará un enlace que pegaremos en el navegador para autorizar a Twidge a interactuar con nuestra cuenta, cuando aceptemos la autorización veremos un código que debemos pegar en la terminal donde lo pide y le damos enter. Twidge ya estará listo para funcionar.
Esto es todo lo que debemos saber de Twidge para nuestra tarea, pero como el saber no ocupa lugar aquí pueden ver como funciona este programa.

La parte interesante viene ahora... está claro que a Twidge lo vamos a usar para que tuitee, pero que debe tuitiar y como lo hará?

La idea como dijimos es que envíe un tuit cada cierto tiempo con lo que está sonando en ese momento por Radit, de esto se deduce que se debe poder leer el archivo CurrentSound.txt y tuitiar su contenido, pero esto por si solo daría como resultado un tuit bastante soso del tipo:

Silvio Rodríguez - El necio

Mejor sería algo como esto:



Se ve mucho mejor ¿verdad?
La magia la hace un simple script bash (me costó una semana averiguar como).
Busca que te busca encontré este excelente sitio Satélite Guayana donde su creador publicó un script que hace algo parecido, el script original lee y tuitea linea a linea un archivo de texto cada cierto tiempo, también es bien útil, de hecho lo uso junto con el que aquí tratamos, lean la entrada de ese sitio para comprender mejor y ver como atomicé al pobre hombre.

A lo nuestro, el código del script es el siguiente:

  #!/bin/bash

echo " ...Esto va despues del tema" >> /home/tuusuario/laruta/alarchivo/CurrentSound/CurrentSound.txt
ARCHIVO="/home/tuusuario/laruta/alarchivo/CurrentSound/CurrentSound.txt"

cat ${ARCHIVO} | while read LINEA
do
echo Esto aparece antes del tema: "${LINEA}" > /tmp/tuit
twidge update < /tmp/tuit
done

exit 0

Vamos a explicar como funciona, por algún motivo misterioso (para mi que no se un corno de programación) el script original del sitio que comenté antes si intentaba leer un archivo con una sola linea (como el que genera Radit) no tuitiaba nada, entonces aprovechando este problemita y para que el tuit tenga mas gracia lo primero que hace nuestro script es agregar una linea al CurrentSound.txt con esto:

echo " ...Esto va despues del tema" >> /home/tuusuario/laruta

...Esto va despues del tema es lo que se agrega y que aparecerá al final del tuit, ustedes ponen allí lo que quieran, en el ejemplo de la imagen es: ...En Urbana Stereo 95.7fm Se parece a ti
Donde aparece la ruta al archivo ustedes deben poner la suya esta claro.

En esta parte del código:

echo Esto aparece antes del tema: "${LINEA}" > /tmp/tuit

 Lo que está en negritas aparece en el tuit antes del nombre del tema, para el ejemplo de la imagen:

Ahora escuchas:

Ustedes ponen lo que quieran.
Al fin el script crea un archivo temporal y pasa el contenido a Twidge para que lo tuitee.

Para crear el script abren cualquier editor de texto plano y pegan el contenido, luego lo guardan en su home o carpeta personal con el nombre que quieran mas la extensión .sh por ejemplo paratuitiar.sh

Por las dudas que el estilo de la plantilla nos juegue alguna mala pasada con las comillas etc, les dejo el enlace para que descarguen el script

Ahora debemos darle permisos de ejecución desde la terminal con:

sudo chmod +x NombreScript.sh

O simplemente lo pinchamos con el botón derecho y en Propiedades/Permisos , le ponemos que se pueda ejecutar como programa.

Ahora vamos a probarlo ... chaaaaannnn, en la terminal escribimos:

sh nombredelscript.sh

Si todo sale bien van a ver que luego de un segundo la terminal vuelve a estar lista para un nuevo comando, entonces ya pueden revisar a ver si efectivamente fue enviado el tuit.

Bueno ya nos falta menos, ahora que ya sabemos que funciona debemos programar cada cuanto tiempo queremos que se ejecute, para esto vamos a usar Cron.
Cito lo que explican en Desde linux 

"El nombre cron viene del griego chronos que significa “tiempo”. En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab."

No me voy a extender con el uso de Cron, pueden chequear el enlace anterior donde se explica y este otro.

Y si les da un poco de miedo usar algún editor tipo Vim para programar cuando se va a ejecutar nuestro script pueden recurrir a Gnome-Schedule, una interfaz gráfica para Cron que nos facilita aún mas las cosas, aquí pueden ver como se usa. Lo instalamos:

sudo apt-get install gnome-schedule
Gnome-Schedule aparecerá en el menú como "Tareas programadas"
Les dejo una imagen de una programación típica para nuestro script

 
Primero vamos a Añadir una tarea nueva/Tarea repetitiva
1- Ponemos la ruta a nuestro script
2- Aquí va el tipo de salida, como en nuestro caso no se necesita nuestra intervención y no es una aplicación gráfica elegimos Suprimir salida
3- Aquí se programa cuando se debe ejecutar, consulten el enlace que les puse para ver como funciona.
Por ultimo le damos a Añadir y listo ya estará listo para ejecutarse automáticamente nuestro script.

En el ejemplo de la imagen tuitiaremos cada 20 minutos de 10 a 22hs de lunes a viernes.
Debemos de considerar que Radit sobrescribe el archivo CurrentSound.txt cada ves que cambia el tema, debemos esperar entonces por lo menos 10 minutos entre cada ejecución del script para asegurarnos que cambie, de lo contrario estaremos agregando lineas una y otra ves.

Bueno listo, se positivamente que esta entrada le va a ser de bastante interés a la gente que trabaja con radios y quiere tener una presencia en Twitter sin tener que estar continuamente tuitiando a mano, este script para Radit (también por lo que vi podría usarse en Rivendell) mas el original que les comenté antes, de hecho yo uso los dos como pueden ver en la imagen del timeline, son una buena ayuda para marcar presencia en esta red y tener activo siempre nuestro Twitter.


Te gustaría seguir este blog?

4 comentarios:

  1. No puedo!!!!! me da ese error "twidge user error (bad response 401)". No lo puedo resolver. Se puede reemplazar el programa twidge? como se arma el scrip si se reemplaza el programa?

    ResponderEliminar
  2. hazte un tutorial para youtube mejor por que esto solo lo entiendes tu!!

    ResponderEliminar
  3. hazte un tutorial para youtube mejor por que esto solo lo entiendes tu!!

    ResponderEliminar
  4. Saludos a todos !!!... A pesar que sabemos que Guarango Radio/TV puede envíar tuits, les dejo el ajuste al código para usarlo con esa app:

    #!/bin/bash

    echo " ..." >> /home/tu-usuario/.guarangoradio/data/tmp/currentsong.txt
    ARCHIVO="/home/tu-usuario/.guarangoradio/data/tmp/currentsong.txt"

    cat ${ARCHIVO} | while read LINEA
    do
    echo En Mágica 106.3 FMC escuchas: "${LINEA}" > /tmp/tuit
    twidge update < /tmp/tuit
    done

    exit 0

    ResponderEliminar