Foros del Web » Programando para Internet » PHP »

problema con script de vimeo

Estas en el tema de problema con script de vimeo en el foro de PHP en Foros del Web. hola a todos, estaba haciendo unos scripts para los reproductores de videos online como vimeo, youtube, metacefe, dailymotion, veoh...etc. para pasarlo al jwplayer, y resulta ...
  #1 (permalink)  
Antiguo 21/12/2011, 22:02
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Pregunta problema con script de vimeo

hola a todos, estaba haciendo unos scripts para los reproductores de videos online como vimeo, youtube, metacefe, dailymotion, veoh...etc. para pasarlo al jwplayer, y resulta que el de vimeo se me resiste y no lo entiendo porque.

aver si me podeis hechar una mano.

1. Recuperar los metadatos de clip de XML (e.j: "http://vimeo.com/moogaloop/load/clip:22638063")
2. Tomar el valor de "request_signature" y "request_signature_expires" del XML
3. Utilizar la URL "http://vimeo.com/moogaloop/play/clip:22638063/REQUEST_SIG/REQUEST_SIG_EXPIRES/?q=sd"

Hasta la tercera parte funciona todo perfecto si abro el http://vimeo.com/moogaloop/load/clip:22638063 y pego manualmente los datos que me ofrece, pero al ejecutarlo con el php me dice que turulu ni pa ti ni pa mi.

el caso es que funciona pero manualmente os dejo el code si se me ha pasado algo.

Código PHP:
<?php

// Este es el ID de vídeo pasado por GET
if(empty($_GET['video'])) {
    echo 
"No se ha encontrado la ID!";
}else{
$id $_GET['video'];

// Comprobar si se dispone de Vimeo. Almacenar el contenido y el código fuente en $content.
 
if (false == ($content = @file_get_contents("http://vimeo.com/moogaloop/load/clip:" $id))) {
     echo 
"Vimeo no está disponible, por favor intente más tarde!";
 }else{

    
// Búsca la fuente y guarda el ID request_signature en una variable.
    
if (strstr($content"<request_signature>")) {
        list(,
$pos1) = explode("<request_signature>"$content);
        list(
$pos2,) = explode("</request_signature>"$pos1);
        
$request_signature $pos2;
    }else{
        echo 
'No se encuentra la cadena request_signature!';
    }

    
// Aquí tenemos la request_signature_expires y lo almacenamos en una variable.
    
if (strstr($content"<request_signature_expires>")) {
        list(,
$pos1) = explode("<request_signature_expires>"$content);
        list(
$pos2,) = explode("</request_signature_expires>"$pos1);
        
$request_signature_expires $pos2;
    }else{
        echo 
"No se encuentra la cadena request_signature_expires!";
    }
    
    
// Luego obtenemos todo el conjunto creado por las variables y hacemos el link de descarga para el vídeo.
    
$download "http://vimeo.com/moogaloop/play/clip:" $id "/" $request_signature "/" $request_signature_expires "/" "?q=hd";
    
        echo 
'<a href="' $download '">Descargar</a>';
 }
}
?>
  #2 (permalink)  
Antiguo 22/12/2011, 10:58
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Respuesta: problema con script de vimeo

ya lo resolví, estaba muy facil pero no cai en la configuracion del servidor de vimeo os dejo a todos el code espero que lo disfruten.

Por cierto se puede descargar en formato SD y HD y tambien hacer streaming con un reproductor propio como jwplayer o flowplayer o cualquier otro.

Solo funciona con curl sino vimeo temanda error 500.

No os olvideis de comentar ya que no lo hay por la red a no sea que lo compres y son mas complicados de integrar "No es obligatorio comentar".
Gracias a todos.


Este archivo vamos a llamarlo vimeo.php
Código PHP:
<?php
//######################################
//   Vimeo Downloader                 \\
//      Coded by Video Cacao          \\
//        Aleksander Haugas            \\
//          Visit: www.videocacao.es  \\
//######################################

// Este es el ID de vídeo pasado por GET
if(empty($_GET['pelicula'])) {
    echo 
"No se ha encontrado la ID!";
}else{
$video_id $_GET['pelicula'];
}

// Aqui empieza la funcion para el streaming o la descarga
function get_web_page$url 

    
$options = array( 
        
CURLOPT_RETURNTRANSFER => true,              // volver a la página web 
        
CURLOPT_HEADER         => true,                     // cabeceras de retorno 
        
CURLOPT_FOLLOWLOCATION => true,           // siguen las redirecciones
        
CURLOPT_ENCODING       => "",                    // manejar todas las codificaciones
        
CURLOPT_USERAGENT      => "Video_Cacao"// quien soy 
        
CURLOPT_AUTOREFERER    => true,               // configurar referer al redirigir
        
CURLOPT_CONNECTTIMEOUT => 120,            // tiempo de espera de conexión
        
CURLOPT_TIMEOUT        => 30,                        // tiempo de espera de la respuesta 
        
CURLOPT_MAXREDIRS      => 10,                 // parar después de 10 redirecciones
    
); 

    
$ch      curl_init$url ); 
    
curl_setopt_array$ch$options ); 
    
$content curl_exec$ch ); 
    
$err     curl_errno$ch ); 
    
$errmsg  curl_error$ch ); 
    
$header  curl_getinfo$ch ); 
    
curl_close$ch ); 

    
//$header['errno']   = $err; 
   // $header['errmsg']  = $errmsg; 
    //$header['content'] = $content; 
    //print($header[0]); 
    
return $header
}  
        
// Aqui tiene que ir con la url completa con http://www.ejemplo.com/
    
$thisurl "http://www.ejemplo.com/decode.php?video="."$video_id";
    
$video_urlsource get_web_page$thisurl ); 
        
// Para mostrar el link usar: echo $video_urlsource["url"];
        //Para el stream llamar el archivo con <?php echo  $video_url; 
?>
    $video_url = $video_urlsource["url"];

?>
Ahora vamos a leer la configuracion de vimeo par que nos devuelvan los datos y lo llamaremos decode.php

Código PHP:
<?php
//######################################
//   Vimeo Downloader                 \\
//      Coded by Video Cacao          \\
//        Aleksander Haugas            \\
//          Visit: www.videocacao.es  \\
//######################################

// Este es el ID de vídeo pasado por GET
if(empty($_GET['video'])) {
    echo 
"No se ha encontrado la ID!";
}else{
$video_id $_GET['video'];
}
// Leemos el archivo xml y extraemos los datos
        
$xml_url "http://vimeo.com/moogaloop/load/clip:$video_id";

        
$ch curl_init($xml_url);           
        
$cookieFile '/runtime/vimeocookie'time().'.txt'//Reemplace esta línea con el código para generar un camino de escritura en su aplicación
        
curl_setopt($chCURLOPT_COOKIEJAR$cookieFile); //el archivo de cookies se llenará con las cookies recibido mientras se visualiza el página de xml 
        
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']); //tiene que enviar un agente de usuario aquí y que debe ser la misma por debajo de cuando usted visita la URL del video
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
$output curl_exec($ch);
        
curl_close($ch);

        
// Procedemos a construir la url del video
        
$xml simplexml_load_string($output);
        
$request_signature $xml->request_signature;
        
$request_signature_expires $xml->request_signature_expires;
        
$vid_url "http://vimeo.com/moogaloop/play/clip:".$video_id."/".$request_signature."/".$request_signature_expires."/?q=sd".$video_id.".flv";
    
        
// La descarga se inicia automaticamente en el formato indicado cuando solo se acceda a este archivo individualmente
    
header("Location: $vid_url");
?>
Bueno espero que lo disfruten, no esta depurado si alguien se atreve a mejorarlo bienvenido sea y que no se corte, y la proxima pongo la de videobb.

A cuidarse y gracias por esta comunidad que me ha resuelto muchas dudas.

Etiquetas: vimeo, variables
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




La zona horaria es GMT -6. Ahora son las 03:04.