Hoy dejo aquí un pequeño code-kata para poner la radio automáticamente con el lenguaje de programación Python. Lo he probado con GNU/Linux funcionando en una Raspberry Pi, que además de poner la radio hace otras cosas, pero eso es otra historia.. ?
Para el que no conozca las Raspberry Pi, son pequeños ordenadores, de muy bajo coste, orientados a realizar sistemas embebidos, prototipos, o incluso sistemas informáticos completos en producción. Es decir, tenemos capacidad de procesamiento como con un ordenador, con RAM, CPU, almacenamiento en disco en forma de tarjeta MicroSD, USBs, HDMI, red wifi y ethernet, etcétera. Y funciona con apenas un cargador de móvil de microUSB..
Al grano, el código fuente
En Python, nos puede quedar tal que así:
import time
import psutil
import subprocess
def runStopRadio():
# Declaramos esta variable global
# porque queremos saber luego donde está
# el subproceso para poder pararlo.
global radioProcess
stopping = False
# Recorre los procesos para saber si el VLC
# está ejecutándose y así apagarlo.
for p in psutil.process_iter():
if p.name() == 'vlc':
stopping = True
radioProcess.terminate()
radioProcess.wait()
print("VLC running stopping it..")
# Si no está VLC ejecutándose entonces se arranca
# la radio.
if not stopping:
radioProcess = subprocess.Popen(
["cvlc", "http://173.236.60.186:8028/stream"]
)
print("VLC launched with radio..")
# Arranca una radio online.
runStopRadio()
# Espera 60 segundos.
time.sleep(60)
# Para la radio.
runStopRadio()
Para lanzar este pequeño programa, basta con tener instalado el VLC. Viene instalado en la Raspberry si usas el sistema operativo oficial llamado Raspbian. Pero si por lo que sea no lo tienes, en GNU/Linux lo puedes instalar así:
sudo apt install vlc
Las librerías necesarias para Python las puedes instalar así:
pip3 install psutil
Lo último es grabar el fichero anterior en un fichero .py y ejecutarlo a cierta hora a modo de alarma, o simplemente desde línea de comando de nuevo:
python3 runStopRadio.py
Sólo me queda decir que este sencillo programa arranca la radio, la deja funcionar durante 60 segundos, y luego la vuelve a apagar. Algunos enlaces relacionados:
- https://www.python.org/
- https://www.videolan.org/
- https://www.shoutcast.com/
- https://www.raspberrypi.org/
- https://www.gnu.org/
- https://www.linux.org/
- https://www.raspbian.org/
Otro día más.. ¡Un saludo!