Se pretende crear un sitio programado en php que extraiga informacion de un servidor SHOUTcast cualquiera, para poder con esto manipular libremente estos datos a gusto del usuario e implementarlo facilmente en sitios webs o incluso en un bot irc.
¿Que es SHOUTcast?
SHOUTcast es una tecnología de streaming auditiva freeware, desarrollada por Nullsoft. SHOUTcast utiliza la codificación MP3 o AAC de contenido auditivo y http (Hyper Text Transfer Protocol) como protocolo (también se puede utilizar multicast) para transmitir radio por internet.
Fuente: wikipedia.
En palabras simples, SHOUTcast es un sistema muy utilizado y conocido para transmitir radios via internet, de echo la gran mayoria de radios que pueden encontrar por ahi estan montadas con ese sistema.
¿Que es php?
Php es un muy conocido, amigable y potente lenguaje orientado a la creación de sitios webs dinámicos.
¿Que tiene de especial este script?
No podemos acceder via php con una funcion como fopen() debido a que estos sitios utilizan un metodo llamado GET, un forma seria utilizando curl, pero prefiero hacer algo mas facil y entendible, utilizaré sockets.
SHOUTcast nos proporciona un sitio en donde nos muestra la información que manipularemos de una forma muy ordenada, pero esta información se basa a un estilo y forma predefinida, la manipulacion de esta informacion puede ser compleja, pero lo que no muchos saben, SHOUTcast también proporciona un sitio en donde solo muestran numeros y letras con toda esta información mostrada en base a codigos, esta información es mostrada en la siguiente syntax:
Numero1,Numero2,Numero3,Numero4,Numero5.Numero6,Tema
Por ejemplo:
6,1,16,50,6,64,daddy yankee - llamada de emergencia
Cada uno de estos numeros significa algo, el detalle sobre que significa cada cosa esta descrito a continuación:
Numero1: Corresponde al numero de usuarios que en ese momento se encuentran escuchando la radio.
Numero2: Estado de la radio si es "1" significa que la radio esta funcionando, caso contrario seria que este valor sea igual a "0".
Numero3: Es el numero de usuarios máximo que han estado escuchando la radio en el servidor
Numero4: Numero máximo de conexiones posibles al servidor
Numero5: Conexiones activas al servidor.
Numero6: Calidad del audio, valor expresado en Kb/seg
Tema: Artista y nombre del tema que se está reproduciendo en ese instante.
La finalidad seria dejar esta información en las variables $numero1 , $numero2 , $numero3 , $numero4 , $numero5 , $numero6 y $tema respectivamente.
El script que creé con esta finalidad, funcionando es el siguiente:
barckley
// Sábado 8 de Agosto del 2009
muy bien el tuto , pero una pregunta ,,hay alguna variable para obtener el tiempo de duracion de la actual cancion,, por favor respondeme eso , si puedes a mi correo que solo me falta eso y tengo todo listo
Franklin
// Domingo 21 de Febrero del 2010
excelente… sabes si hay una manera de extraer la karatula o covers del album de la cancion que esta sonando?
gracias…
Iván Alexis
// Lunes 22 de Febrero del 2010
@barckley, en la pagina que trabajé no está esa variable, pero busca una pagina que te muestre la informacion que solicites y por el mismo metodo se puede extraer esa informacion.
@Franklin, lo mismo es para ti, busca un archivo que provee la imagen y yo te ayudo a extraer el codigo.
JhonGdl
// Viernes 26 de Febrero del 2010
Que tal, oye tengo un error en una función de PHP que no conozco y no se como repararla, el error es el siguiente.
Warning: explode() [function.explode]: Empty delimiter in C:\xampp\htdocs\radio\shoutcast.php on line 42
Warning: explode() [function.explode]: Empty delimiter in C:\xampp\htdocs\radio\shoutcast.php on line 43
Daniel
// Sábado 5 de Junio del 2010
en mi sitio http://www.flashfm.freevar.com/prueba.php tengo para insertar el codigo, pero no me aparece mas que letras, o sea el mismo codigo se ve en la pagina, como hay que hacer para insertarlo??? No se si se me entiende… gracias
Gabito
// Viernes 11 de Junio del 2010
por lo que veo solo el lenguage agrega a las variables los valores, tu ves como ocupas esas variables
DsC
// Domingo 27 de Junio del 2010
Hola! Tengo un código muy parecido al tuyo, con el leo el 7.html, pero “Stream Title” no esta en 7.html, alguna forma de leerlo? si la sabes te agradeseria que la comentes
Alejandro
// Viernes 22 de Octubre del 2010
tengo una grandisima pregunta, en tu php tienes declarado y especificas que en “7.html” es la pagina que utilizaste para publicar dichos datos del SHOUTcast, pero en ese “7.html” que va dentro, osea ¿cual es el codigo que va dentro de ese fichero para que publique la informacion?, por favor si me podrias ayudar te estaria muy agradecido
Mario
// Viernes 27 de Enero del 2012
Una pregunta. Yo uso Hardata Dinesat Radio 8 (Un reproductor automatizado para radios) Sin embargo mi servidor de stream es en base a shoutcast. Me funcionaría ese script utilizando el reproductor antes mencionado. Gracias.
TiaN
// Viernes 19 de Junio del 2009
GENIAL! jajajaj aunque el que porté yo nose si es idea mia pero lo encuentro más rapido…
pero en sí me gusta más tu codigo…
cuidate wn un abrazo!