Foros del Web » Programando para Internet » PHP »

[APORTE] Información de la transmisión con Shoutcast

Estas en el tema de [APORTE] Información de la transmisión con Shoutcast en el foro de PHP en Foros del Web. EDITO: Esta version quedo vieja!. Ya saque la version 2.0 con muchas mas features Mirala en este post http://www.forosdelweb.com/f18/aport...v2-0-a-735207/ ----------------------------------------------------------------------------------------------------------------------------------------- Hola, bueno queria dejar mi ...
  #1 (permalink)  
Antiguo 09/07/2008, 19:03
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
De acuerdo [APORTE] Información de la transmisión con Shoutcast

EDITO: Esta version quedo vieja!. Ya saque la version 2.0 con muchas mas features

Mirala en este post http://www.forosdelweb.com/f18/aport...v2-0-a-735207/

-----------------------------------------------------------------------------------------------------------------------------------------

Hola, bueno queria dejar mi aporte, y el otro dia arme un script para un amigo que tiene un sitio y que habia configurado shoutcast para pasar radio, entonces le dije que le iba a crear este script y bueno, ahora no se que hacer con el asi que lo pongo aca, para compartirlo.
Espero que les sirva, quiza haya muchos en internet dando vuelta, pero bueno esta Class esta en español completamente ya que la hice desde 0, asi que pueden modificarla con facilidad y entenderla mejor que muchas que andan dando vuelta en ingles y con mucho codigo al pepe!

Aca va el codigo de la class
shoutcast.php
Código PHP:
<?php

/**
 * @autor Cristián Pérez
 */

class Shoutcast
{    
    private    
$conexion//socket resourse
            
$datos = array 
                        (
                        
'estado'            =>    0//Estado del server (Online, Offline)
                        
'oyentes_actuales'    =>    0//Oyentes que hay actualmente
                        
'oyentes_limite'    =>    0//Limite de oyentes del servidor
                        
'oyentes_pico'        =>    0//Pico maximo de oyentes que tuvo el server
                        
'oyentes_unicos'    =>    0//oyentes unicos que tiene el server
                        
'frecuencia'        =>    0//Frecuencia de transmision
                        
'cancion_actual'    =>    '' //Cancion actual que se escucha
                        
);
    
    public    
$host,
            
$conectado//boolean
            
$puerto,
            
$tiempo_out 30,
            
$online_img,
            
$offline_img;
    
    public function 
Conectar()
    {
        if((
$this->conexion = @fsockopen($this->host$this->puerto$errno$errstr$this->tiempo_out)) == true)
        {
            
$this->ObtenerDatos();
        }
    }
    
    public function 
Cerrar()
    {
        @
fclose($this->conexion);        
    }
    
    
/* Proceso */
    
private function Leerdatos()
    {
        
fputs($this->conexion"GET /7.html HTTP/1.0\r\nUser-Agent: SC Status (Mozilla Compatible)\r\n\r\n");
        while(!
feof($this->conexion))
        {
            
$contenido .= @fgets($this->conexion1024);
        }
        return 
$contenido;
    }
    
    private function 
ObtenerDatos()
    {
        
$contenido                            ereg_replace(".*<body>"""$this->Leerdatos());
        
$contenido                            ereg_replace("</body>.*"","$contenido);
        
$contenido                            explode(",",$contenido);
        
$this->datos['estado']                = $contenido[1];
        
$this->datos['oyentes_actuales']    = $contenido[0];
        
$this->datos['oyentes_limite']        = $contenido[3];
        
$this->datos['oyentes_pico']         = $contenido[2];
        
$this->datos['oyentes_unicos']        = $contenido[4];
        
$this->datos['frecuencia']            = $contenido[5];
        
$this->datos['cancion_actual']        = $contenido[6];
    }
        
    
/* FUNCIONES */
    
public function Estado()
    {
        if(!
$this->conexion) {
            return 
$this->Offline();
        } else {
            return (
$this->datos['estado'] == 1) ? $this->Online() : $this->Offline();
        }
    }
    
    public function 
Oyentes()
    {
        return 
$this->datos['oyentes_actuales'];
    }
    
    public function 
Limite()
    {
        return 
$this->datos['oyentes_limite'];
    }
    
    public function 
Pico()
    {
        return 
$this->datos['oyentes_pico'];
    }
    
    public function 
Unicos()
    {
        return 
$this->datos['oyentes_unicos'];
    }
    
    public function 
Frecuencia()
    {
        return 
$this->datos['frecuencia'];
    }
    
    public function 
CancionActual()
    {
        return 
$this->datos['cancion_actual'];
    }
    
    
/* ESTADOS */
    
private function Online()
    {
        
$this->conectado true;
        return 
$this->online_img;
    }
    
    private function 
Offline()
    {
        
$this->conectado false;
        return 
$this->offline_img;
    }
}

?>
y aca un ejemplo de como usarla

ejemplo.php
Código PHP:
<?
/**
 * @ejemplo Ejemplo de como configurar y utilizar las funciones del script
 */

include("shoutcast.php");

//Crear Objeto
$server = new Shoutcast;
//Configurar
$server->host "xxx.xxx.xxx.xxx"//Ip del servidor
$server->puerto "8000";
$server->tiempo_out 10// si borras esta linea viene por defecto = 30
$server->online_img '<img src="online.gif" border="0" /> Radio Online'//puede ser texto tambien sino
$server->offline_img '<img src="offline.gif" border="0" /> Radio Offline';

$server->Conectar();
?>
<table>
    <tr>
        <td><?=$server->Estado();?></td>
    </tr>
    <?
    
if($server->conectado == true)
    {
    
?>
    <tr>
        <td>Estamos escuchando: <?=$server->CancionActual();?></td>
    </tr>
    <tr>
        <td>Estamos transmitiendo a <?=$server->Frecuencia();?> kbps</td>
    </tr>
    <tr>
        <td>Hay <?=$server->Oyentes();?> Oyentes de <?=$server->Limite();?> Permitidos (<?=$server->Unicos();?> oyentes unicos)</td>
    </tr>
    <tr>
        <td>El maximo de oyentes simultaneos fue de <?=$server->Pico();?> oyentes</td>
    </tr>
    <?
    
}
    
?>
</table>
<?
$server
->Cerrar();
?>
Para los que no saben que es Shoutcast:
http://es.wikipedia.org/wiki/SHOUTcast
http://www.shoutcast.com/

Bueno sin mas que decir les dejo un saludo! y espero que a alguien le sirva, quiza en unos dias suba una actualización con algunas funciones mas!

Última edición por korg1988; 13/09/2009 a las 03:42
  #2 (permalink)  
Antiguo 09/07/2008, 21:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Hola korg1988,

Gracias por tu aporte.

Saludos.
  #3 (permalink)  
Antiguo 10/07/2008, 00:10
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Holas

Muchisimas Gracias, y felicitaciones por ese codigo, se ve genial

Gracias denuevo y Saludos
__________________
CabaSoft Networks
  #4 (permalink)  
Antiguo 10/07/2008, 00:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [APORTE] Información de la transmisión con Shoutcast

deveras...

una ves yo hice algo similar... de echo, lo mismo... en una función, nunca se me ocurrió... jeje, suerte!

PDTA: (no es que no quise, es que no pude darte karma)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/07/2008, 08:33
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
De acuerdo Respuesta: [APORTE] Información de la transmisión con Shoutcast

Gracias por los mensajes!

Vamos a ver que trae la version 2.0 jajaj!
  #6 (permalink)  
Antiguo 11/07/2008, 10:32
Avatar de hernansam  
Fecha de Ingreso: septiembre-2007
Ubicación: Funes , Argentina
Mensajes: 204
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

muy bueno el aporte , felicitaciones
  #7 (permalink)  
Antiguo 24/07/2008, 11:23
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Hola,
¡Recién veo el aporte y esta buenísimo!
Me sirve de mucho pero mi servidor (no local) no lo soporte.
¡Pero anda de 10!
Te felicito.
Gracias
Salu2
__________________
Half Music - www.halfmusic.com
  #8 (permalink)  
Antiguo 02/09/2008, 05:44
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

hola amigo que tal yo soy miller tengo una radio por internet desde el canada y quiero poner en la web de la radio las estadisticas de la radio por ejemplo la cantidad de oyenetes todo eso mno se si me entiendas no se si tu puedes ayudarme con eso tengo dos servidores de la radio y quiero configurar los dos para ver las estadisticas en tiempo real.
si puedes ayudarme con eso agregame a tu msn con [email protected]
  #9 (permalink)  
Antiguo 08/09/2008, 15:30
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
De acuerdo Respuesta: [APORTE] Información de la transmisión con Shoutcast

Buen trabajo!, felicitaciones y gracias por la aportación, me ha sido útil.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #10 (permalink)  
Antiguo 05/05/2009, 16:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 6
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Perdona mi ignorancia, pero me interesó mucho el post y no entendí bien...

Con este código se puede hacer un reporte de la transmisión del shoutcast o puedo transmitir desde el servidor?

Yo rento un servidor para mi sitio y me gustaría poner algo de radio transmitiendo desde ahí.
Hace mucho tiempo yo transmitía a través de la página de otra persona, así que conozco un poco el funcionamiento de shoutcast.
  #11 (permalink)  
Antiguo 05/05/2009, 18:28
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: [APORTE] Información de la transmisión con Shoutcast

intersante el aporte.

gracias
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #12 (permalink)  
Antiguo 21/05/2009, 04:46
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: [APORTE] Información de la transmisión con Shoutcast

y como se peude mostrar el nombre del dj, su foto y las ultimas canciones reproducidas?
  #13 (permalink)  
Antiguo 13/07/2009, 19:19
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Hola utilice el script pero creo que no lo use del todo bien porque por mas de que la radio este online aparece como si no lo estibiese y se muestra como offline y a eso hay que agregarle que al reproductor que tengo en esa pagina tampoco anda del todo bien... alguna ayuda?? desde ya muchas gracias
  #14 (permalink)  
Antiguo 20/07/2009, 20:22
 
Fecha de Ingreso: julio-2009
Ubicación: Sevilla (España)
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Cita:
Iniciado por juan2362 Ver Mensaje
Hola utilice el script pero creo que no lo use del todo bien porque por mas de que la radio este online aparece como si no lo estibiese y se muestra como offline y a eso hay que agregarle que al reproductor que tengo en esa pagina tampoco anda del todo bien... alguna ayuda?? desde ya muchas gracias
Yo estoy igual que tu funciona todo bien excepto que siempre dice que esta offline :S
  #15 (permalink)  
Antiguo 19/08/2009, 15:30
 
Fecha de Ingreso: enero-2008
Mensajes: 38
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

podria agregarse el server title y ultimas 5 canciones o 6 ?.. desde ya seria muy util
  #16 (permalink)  
Antiguo 19/08/2009, 16:54
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: [APORTE] Información de la transmisión con Shoutcast

genial se va a marcadores me puede ser útil.

saludos.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #17 (permalink)  
Antiguo 04/12/2009, 19:41
Avatar de MARKWEB  
Fecha de Ingreso: septiembre-2001
Ubicación: En mi casa
Mensajes: 1.562
Antigüedad: 22 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Información de la transmisión con Shoutcast

justo lo que necesitaba, eso si necesito ver si puedo pasarlo a flash.. si logro pasarlo lo reposteo
__________________
Un MEJOR AMIGO es como un trébol de 4 hojas, DIFÍCIL DE ENCONTRAR y ES DE BUENA SUERTE TENER UNO
  #18 (permalink)  
Antiguo 06/12/2009, 20:10
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: [APORTE] Información de la transmisión con Shoutcast

markweb, esta version quedo obsoleta, entra al post de la version 2. vas a trabajar en vano sino!
Lee la parte donde dice EDITO: lalala
  #19 (permalink)  
Antiguo 06/12/2009, 20:14
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: [APORTE] Información de la transmisión con Shoutcast

markweb, esta version quedo obsoleta, entra al post de la version 2. vas a trabajar en vano sino!
Lee la parte donde dice EDITO: lalala
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 17:25.