Autor: Iván Alexis - Fecha: Viernes 19 de Junio del 2009 - 8 Comentarios

Contenido:

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:

PLAIN TEXT
PHP:
  1. // Variables a editar para acomodarlas al servidor que deceen
  2.  
  3. $servidor="www.servidor_de_ejemplo.com";
  4. $puerto=9090; // este puerto fue el utilizado en mi caso
  5. // en mi caso 7.html es la pagina que nos muestra la informacion que deceamos definida en la siguiente variable
  6. $pagina="7.html";
  7.  
  8. // Nos conectamos al servidor
  9.  
  10. $da = fsockopen($servidor,$puerto,$errno,$errstr,30);
  11.  
  12. // Mostramos los errores en la conexion si es que existen
  13.  
  14. if (!$da) {
  15. echo "$errstr ($errno)
  16. \n";
  17. }
  18.  
  19. // Si la conexion fue un exito continuamos
  20.  
  21. else {
  22.  
  23. // Enviamos la cabecera y solicitamos ver la pagina
  24.  
  25. $salida = "GET /".$pagina." HTTP/1.0\r\nUser-Agent: Mozilla\r\n";
  26. $salida .= "Host: ".$servidor.":".$puerto."\r\n";
  27. $salida .= "Connection: Close\r\n\r\n";
  28. fwrite($da, $salida);
  29.  
  30. // Recibimos la respuesta del servidor y almacenamos los datos en la variable $bufer
  31.  
  32. $bufer="";
  33. while (!feof($da)) {
  34. $bufer=$bufer.fgets($da, 128);
  35. }
  36. fclose($da);
  37.  
  38. // Extraemos lo que necesitamos
  39.  
  40. $dato1=explode("",$bufer);
  41. $dato2=explode("",$dato1[1]);
  42. $caracteristicas=explode(",",$dato2[0]);
  43.  
  44. // Guardamos la informacion en nuestras variables
  45.  
  46. $numero1.$caracteristicas[0];
  47. $numero2=$caracteristicas[1];
  48. $numero3=$caracteristicas[2];
  49. $numero4=$caracteristicas[3];
  50. $numero5=$caracteristicas[4];
  51. $numero6=$caracteristicas[5];
  52. $tema=$caracteristicas[6];
  53.  
  54. // Listo ya podemos manipular nuestras variables
  55.  
  56. }
  57.  
  58. ?>

Compartir Si te gustó esta publicación, la puedes Compartir y Guardar en tu sitio favorito.

Categorías: General, Papers, Scripts • Etiquetas: , , , , Volver al principio

8 Comentarios en “Extraer info de servidor SHOUTcast con un script php”

TiaN UNITED STATES Windows XP Mozilla Firefox 3.0.10 // 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!


barckley ECUADOR Windows XP Mozilla Firefox 3.0.13 // 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 COLOMBIA Windows XP Mozilla Firefox 3.5.5 // 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 CHILE Linux Mozilla Firefox 3.6 // 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 MEXICO Windows NT Safari 531.21.10 // 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 URUGUAY Windows XP Google Chrome 5.0.375.55 // 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 CHILE Windows NT Internet Explorer 8.0 // 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 Windows NT Google Chrome 4.1.249.1045 // 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 :D



Escribe un comentario:


*
A continuacion, debe escribir el codigo mostrado en la imagen.
Anti-Spam Image