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.1

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);
        }
    }
}
  • #1 escrito por Knight
    hace 7 meses

    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?

  • #2 escrito por Cristián
    hace 7 meses

    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

  • #3 escrito por Daniel García
    hace 6 meses

    Esto funciona igual para este servidor???

    giss.tv

  • #4 escrito por Cristián
    hace 6 meses

    No Daniel, solo para shoutcast

  • #5 escrito por Sergio Solano
    hace 6 meses

    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.

  • #6 escrito por Cristián
    hace 6 meses

    Hola sergio, en el shoutcast server monitor, hay un boton que dice Edit Config, ahi figuran tu usuario y contraseña, o al menos la contraseña y por default, el usuario es “admin”

    Suerte :)

  • #7 escrito por Lorenzo Vinueza
    hace 5 meses

    Disculpa como puedo hacer funcionar el song_history

  • #8 escrito por Cristián
    hace 5 meses

    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 4 meses

    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

  • #10 escrito por Daniel
    hace 3 meses

    Hola, discula las molestias, queiro insertar el codigo pero no se como hacerlo, pongo en html y no sale nada, en que campo de html de la pagina va puesto?? gracias

  • #11 escrito por Cristián
    hace 3 meses

    Hola Greci, si podes postea el codigo que estas utilizando para ver si puedo ayudarte

  • #12 escrito por Cristián
    hace 3 meses

    Daniel, no es html esto, es PHP, por ende, no hay un campo en donde insertarlo, primero tendrias que aprender PHP. y luego implementar la clase en tu proyecto

  • #13 escrito por Seba
    hace 2 meses

    Hola, como se puede hacer el Print pero de la variable (admin) LISTENERS?

    Trato de copiar el codigo como estan en SONG_HISTORY pero no puedo conseguirlo.

    Plis HELP

  • #14 escrito por Cristián
    hace 2 meses

    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

  • #15 escrito por roger
    hace 2 meses

    cuales son las lineas q hay q editar no se entiende porfa explicar

  • #16 escrito por Cristián
    hace 2 meses

    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