Script para escuchar estaciones de Shoutcast

Sathariel creó el siguiente script para escuchar cualquier estación de radio, para ello se requiere crear el archivo ~ / .radio, allí debe de guardar todas sus estaciones en una lista utilizando la siguiente sintaxis:

TITLE | URL

Puede editar este script y reemplazar audacious por su reproductor de audio favorito, si usa un reproductor de audio de terminal puede eliminar el comando nohup y la última parte también (&> /dev/null &)

#!/bin/sh

[[ ! -f ~/.radio ]] && echo "Configuration file not found" &&  exit 1
opts=$(awk -F'|' '
	BEGIN {
		n = 0
		s = "on"
	}
	{
		n += 1
		printf("%s \"%s\" %s ", n, $1, s)
		s = "off"
	}
	' ~/.radio)
[[ -z $opts ]] && echo "Error reading configuration" && exit 1
 stream=$(echo $opts | xargs dialog --output-fd 1 --radiolist "Select a source" 10 50 10)

[[ $? -eq 0 ]] && nohup audacious $(sed -n ${stream}p ~/.radio | cut -d '|' -f 2) &> /dev/null &

Script para actualizar los registros A por estaciones de shoutcast

Varias estaciones de radio cambian su ip, esa es la razón por la que cree este script, no es interactivo así que debe editarlo, remplace http://yp.shoutcast.com/sbin/tunein-station.m3u?id=1177763 con el archivo m3u que puede encontrar en http://directory.shoutcast.com dándole click en descargar con el botón derecho del mouse.

Entonces remplace xxxxxxxxxxxxxxxxxxxxxxxxx con la llave de la api de Cloudflare api key, y admin@example.com con su email de Cloudflare.

Remplace aaaaaaaaaaaaaaaaaaaaaa con el id de la zona y bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb con el id de registro dns (subdominio).


a=$(curl -s http://yp.shoutcast.com/sbin/tunein-station.m3u?id=1177763 | tail -1 | cut -d "/" -f 3 | sed -e 's/:.*//g')

curl -X PUT "https://api.cloudflare.com/client/v4/zones/aaaaaaaaaaaaaaaaaaaaaa/dns_records/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" \
	 -H "X-Auth-Email: admin@example.com" \
	 -H "X-Auth-Key: xxxxxxxxxxxxxxxxxxxxxxxxx" \
	 -H "Content-Type: application/json" \
	 --data  $( echo  '{"type":"A","name":"example.com","content":"$a","ttl":120,"proxied":false}' | sed -e "s/\$a/$a/g" )

Puede ejecutar este script como un cronjob para que se ejecute todos los días:

0 0 * * * bash /home/example/script.sh

Puede obtener el ID de la zona ejecutando este comando:

curl -X GET "https://api.cloudflare.com/client/v4/zones" \
 -H "X-Auth-Email: admin@example.com" \
-H "X-Auth-Key: xxxxxxxxxxxxxxxxxxxxxxxxx" \
 -H "Content-Type: application/json"

Y puede obtener el ID del registro DNS con el siguiente comando:

curl -X GET "https://api.cloudflare.com/client/v4/zones/aaaaaaaaaaaaaaaaaaaaaa/dns_records" \
 -H "X-Auth-Email: admin@example.com" \
 -H "X-Auth-Key: xxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json"

Where do I find my Cloudflare API Key?

These bottons respect your privacy