Shoutcast Server Information
Información del proyecto
Descripción
Descarga
Versión
API
Variables de informacíón
Ejemplo
Descripción
Class PHP que permite obtener informacion acerca de la transmision de un servidor de streaming Shoutcast
Descarga
Source: shoutcast.php
Versión
2.2 (15-09-2010)
API
public Shoutcast::server_online (void)
Devuelve TRUE o FALSE si el server esta en linea o no (Esto es distinto a si el server esta transmitiendo o no, esa informacion se obtiene con la variable STATION_STATUS)
public Shoutcast::admin_mode (void)
Devuelve TRUE si se esta trabajando en modo admin o FALSE en caso contrario
public Shoutcast::get (string $var)
Devuelve el valor de la variable ingresada, y en caso de no existir la variable o no ser accesible devuelve una cadena vacia
Variables a las que se puede acceder
En modo simple (sin iniciar sesion como administrador):
CURRENT_LISTENERS : Cantidad de oyentes actuales
STATION_STATUS : Vale TRUE si el servidor esta transmitiendo o FALSE en caso contrario
LISTENERS_PEAK : Pico máximo de oyentes simultaneos en un momento
LISTENERS_LIMIT : Capacidad máxima de oyentes permitida
UNIQUE_LISTENERS : Cantidad de oyentes únicos (IP)
BITRATE : Frecuencia de la transmisión
CURRENT_SONG : Título de la canción actual
En modo admin:
Se puede acceder a todas las variables del modo simple y las siguientes
STATION_GENRE : Genero de la estación de radio
STATION_URL : Dirección web de la estación
STATION_TITLE : Título de la estación
IRC : IRC de la estación
ICQ : ICQ de la estación
AIM : AIM de la estación
CONTENT_TYPE : MIME del contenido transmitido
SERVER_VERSION : Versión del servidor
SONG_HISTORY : Historial de canciones – Array ( TIMESTAMP, TITLE )
LISTENERS : Información de los oyentes – Array ( HOST, PLAYER, UNDER_RUNS, CONNECT_TIME, POINTER, UID})
Ejemplo de Uso
include 'shoutcast.php'; $s = new Shoutcast("xxx.xxx.xxx.xxx", "8000", "usuario", "password", 10); if ( ! $s->server_online() ) echo 'Server offline'; else { if ( 0 == $s->get('STATION_STATUS') ) echo 'Transmition off'; else { $format = '<strong>%s:</strong> %s <br />'; //Print Current Listeners printf ($format, 'Current Listeners', $s->get('CURRENT_LISTENERS')); //Print Current Song printf ($format, 'Current Song', $s->get('CURRENT_SONG')); //Print Song History if ( $s->admin_mode() ) { $str_history = ''; foreach ( $s->get('SONG_HISTORY') as $song ) $str_history .= '<br />' . $song['TITLE']; printf ($format, 'Song History', $str_history); } } }
-
Hola @Knight, deberias chequear que estes apuntando a la IP y puerto correctos..
Tu server PHP esta en la misma computadora donde esta el servidor shoutcast? las pruebas que estas haciendo son locales???
Ahora bien, si estas ejecutando el script desde otro servidor, hacia tu pc, deberias verificar que los puertos esten abiertos y redirigidos correctamente en tu router! La clase funciona perfectamente ya que mucha gente la esta utilizando, deberias revisar esas otras cuestiones que son mas de Red, que de codigo
Suerte
-
Tengo mi radio, funciona normal
En mi server http://192.168.1.111:8000/ quiero entrar en admin log in pero no se cual es mi usuario. -
Hola lorenzo, podrias usar el ejemplo que esta al final del codigo de ejemplo, bajo el comentario //List Song History
Basicamente SONG_HISTORY es un Array, como dice en la documentacion, por lo que podrias hacer un print_r() del mismo para conocer su contenido y asi saber de que manera procesarlo.
Recorda que SONG_HISTORY esta solo en Admin Mode, para lo que necesitaras el usuario y la contraseña del servidor
-
#9 escrito por Greci hace 1 año
HOla, estoy usando este script pero no logro ver el listado de temas emitidos.
Estoy probando el codigo del ejemplo que sale en esta pagina, coloco mis datos de usuario y contraseña pero solo logra desplegar la informacion básica y no el historial de canciones.
Si entro directamente a la pagina de shoutcast con mis datos si puedo ver el listado de temas pero desde este escript no.Que puede estar pasando? he revisado el codigo y aparentemente no veo nada anormal.
Gracias
-
Hola seba, te explico
LISTENERS es un array, con todos los oyentes, por eso al hacer foreach obtenes cada uno de esos oyentes, ahora, cada oyente es a su vez otro array, por ende, tendrias que decirle que clave es la que quieres!..
Fijate que las claves del array de oyente esta especificada en la lista de variables.
Por las dudas te la transcribo aqui.Array ( HOST, PLAYER, UNDER_RUNS, CONNECT_TIME, POINTER, UID})
por ende, si quieres obtener el Reproductor por ejemplo que esta usando cada uno de tus oyentes deberias hacer algo asi
foreach($s->get(‘LISTENERS’) as $listener) {
echo $listener['PLAYER']; //Aca le pedis la clave que devuelve el Reproductor usado
}Lo mismo con cualquier otra clave del array
-
hola roger, no hay que editar ninguna linea, para utilizar la clase tenes que tener conocimientos de PHP Orientado a Objetos, y solo incluir el archivo shoutcast.php en tu codigo e instanciar la clase como un objeto, luego, utilizar los metodos nombrados mas arriba para poder acceder al estado del servidor o a las distintas variables… en el codigo de ejemplo hay varios casos usados en el mismo ejemplo, solo deberias basar tu codigo en lo se parezca mas a lo que necesitas hacer
-
Hola Cristián !
Bueno sinceramente, llevo tiempo buscando esto !
La verdad, muy buena tu predisposición al subir este material genial.
Te cuento que soy un novato en php, todo lo que he hecho hasta ahora, es con mucha ayudaBien, subi todo los archivos, shoutcast.php’ y ‘ver_info.php’
Dentro de ‘ver_info.php’ pegue el código con el cual se tendría que conectar con el servidor y darme los datos,
Cree un iFrame redirigiendo a ‘ver_info.php’
Me dice que el Server está offline.
¿Puede ser que no este bien el host y el puerto?Aclaro, uso un servidor gratis, no tengo deseos de pagar uno, solo lo hago por hobbie, no por algún trabajo ni nada por el estilo, el servidor que uso es el de:
http://freeshoutcast.com/
Y el host+puerto es..
http://free.freeshoutcast.com:16038/¿Qué estaré haciendo mal?
-
Hola,
Despues de arto tiempo vuelvo a retomar el script para intentar usarlo pero segía sin funcionar incluso hasta con el mismo codigo que pones de ejemplo.
basicamente lo que no funciona era la parte de admin, osea no mostraba los temas recientes y la informacion de los auditores (ip etc)
hice un print_r y me mostraba los array con valor 0 asi que decidí hecharle una mirada a la clase shoutchast.php
Es así como probando y probando lo pude hacer funcionar eliminando algo en la clase, específicamente en las lineas 247 y 257 en donde aparece:
foreach ( (array)$xml->SONGHISTORY->SONG as $song )
….
foreach ( (array)$xml->LISTENERS->LISTENER as $listener )
….Elimine (array) en las dos lineas y ahora funciona todo correctamente.
quedando asi: foreach($xml-> ….
Espero le sirva a alguien.
Saludos
-
Hola greco, muchas gracias por tu aporte.
Despues de leerlo, me puse a revizar la clase y descubrí que el error no era ese en particular, si bien ese cambio ayudo a darle solución a tu problema no era el foco del problema general que había al manipular el objeto SimpleXMLElementCambie un poco la forma de manejar la información leída para asegurarme el tipo de datos recibido, así que.. ahora, en teoría (aunque no pude probarlo mucho tiempo) no habría problemas en adelante.
Cualquier cosa, ya saben donde encontrarme jaja
-
Hola gente. Ahora si que traigo una duda de las buenas. Les cuento. Estoy utilizando el shoutcast para transmitir mi radio en internet y todo va de maravilla. La consigna es la Siguiente. Si han visto cuando reproducimos la emisora por winamp, se actualiza solo el nombre del tema. La pregunta es: Se puede hacer algo similar pero para un html. Es decir, que cuando cambie el nombre del tema, en forma automatica cambie el nombre en el sitio web tambien? Gracias. Un abrazo.
-
chekea el script en la parte de los listeners ,cuando no hay nadie conectado a la radio si bien funciona el escript te devuelve este error :
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 264
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 267
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 274
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 275
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 276
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 277
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 278
Notice: Uninitialized string offset: 0 in C:\wamp\www\shoutcast.php on line 279
-
Hola, esta muy bueno ese script, te felicito.
Pero tengo un problema y espero puedan ayudarme.
El problema radica en obtengo un error de la funcion fsockopen(): “unable to connect to radio.ciudadmetropolis.com:7000 (Connection timed out)”.Ese error me sale cuando corro el ejemplo desde un host gratis que tengo; pero si lo pruebo localmente con server en mi PC, si funciona de maravilla.
Pienso que puede ser que esa funcion no este permitida en la configuracion del host gratis, es de “000webhost”.
Espero haber explicado bien mi problema. De antemano muchas gracias por su ayuda.
-
- Feed de comentarios de esta entrada
No se han encontrado entradas relacionadas :(
Hola!
La verdad es que tengo un problema,.. estoy escuchando mi propia radio, hago la prueba en el server con php5 y,… el servidor del shoutcast está offline? Pero si la estoy escuchando! Curiosidad me voy a la pagina del server y me carga perfectamente,… que es lo que pasa?