Foros del Web » Programando para Internet » PHP »

:: Script que jala videos de youtube pero para mejorarlo

Estas en el tema de :: Script que jala videos de youtube pero para mejorarlo en el foro de PHP en Foros del Web. Hola amigos qui presentare un script desarrollado por uno de mis mejores amigos y bueno aunque funciona perfecto me gustaria poder agregarle algunas cosas como ...
  #1 (permalink)  
Antiguo 16/12/2008, 12:01
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 16 años
Puntos: 3
De acuerdo :: Script que jala videos de youtube pero para mejorarlo

Hola amigos qui presentare un script desarrollado por uno de mis mejores amigos y bueno aunque funciona perfecto me gustaria poder agregarle algunas cosas como un paginador o almenos poder relacionarlo con otros videos porque loo que hace es buscar directamente de los apis de google algunos videos perocomo frase exacta me gustaria que me dieran una manito en manejar este escript.
espero les sirva.
Código PHP:


<?php
include_once("../Conexion/Conx.php");
include_once(
"../Funciones/Funciones.php");




    class 
_Buscador_Youtube {
    
    
/*
    @ public static $q - Cadena a buscar
    */
    
public static $q;

    
/*
    @ public static $dev_id - ID API Youtube
    */
    
public static $dev_id "ugP3HnT7ruo";

    
/*
    @ public static $TotalResultados - Número total de result.
    */
    
public static $TotalResultados 20;


    
/*
    @ public static $DireccionAPI - API Youtube
    */
    
public static $DireccionAPI "http://www.youtube.com/api2_rest?";

    public static 
$pag;


    public static 
$id$Flv$Mp4$En3gp$Titulo$Autor$Tags$Duracion
                  
$Vistas$Descripcion$Img;

    private static function 
_ExtraerCodigoVideo($url) {
        if(
function_exists('file_get_contents')) $html = @file_get_contents($url);
        else 
$html = @join('',file($url));
        return 
str_replace(array("\r","\n"),'',$html);
    }
    private static function 
id($url) {
        
$id explode('=',$url);
        
$id explode('&',$id['1']);
        return 
$id['0'];
    }
    private static function 
Seg_Min($seg) {
        return 
floor($seg/60).':'.($seg%60);
    }
    public static function 
Video($url) {
        
$id   self::id($url);
        
//$html = self::_ExtraerCodigoVideo('http://www.youtube.com/watch?v='.$id);

        //preg_match('#"t": "(.*?)",#',$html,$t);
        //self::$Flv = 'http://www.youtube.com/get_video?video_id='.$id.'&t='.$t['1'];
        //self::$Mp4 = 'http://www.youtube.com/get_video?fmt=18&video_id='.$id.'&t='.$t['1'];

        
$xml self::_ExtraerCodigoVideo('http://gdata.youtube.com/feeds/api/videos/'.$id);

        
preg_match('#<media:title type=\'plain\'>(.*?)</media:title>#',$xml,$title);
        
preg_match('#<name>(.*?)</name>#',$xml,$name);
        
preg_match('#<media:keywords>(.*?)</media:keywords>#',$xml,$tag);
        
preg_match('#<yt:duration seconds=\'(.*?)\'/>#',$xml,$time);
        
preg_match('#<yt:statistics viewCount=\'(.*?)\'/>#',$xml,$stat);
        
preg_match('#<media:description type=\'plain\'>(.*?)</media:description>#',$xml,$descri);
        
preg_match_all('#content url=\'(.*?)\'#',$xml,$cel);

        
self::$id     $id;
        
self::$Img    'http://i.ytimg.com/vi/'.$id.'/default.jpg';
        
self::$Tags   $tag['1'];
        
self::$Autor  $name['1'];
        
self::$Vistas $stat['1'];
        
self::$En3gp  $cel['1']['2'];
        
self::$Titulo $title['1'];
        
self::$Duracion self::Seg_Min($time['1']);   
        
self::$Descripcion $descri['1'];

    }




    private static function 
_CodificarTexto($t){

    return(
iconv("UTF-8""ISO-8859-1"$t));

    }

    private static function 
_Pag(){
    
self::$pag = (!empty($_GET['pag']) && eregi("^[0-9]+$",$_GET['pag'])) ? ($_GET['pag']) : (1) ;

    return(
self::$pag);
    }


    private static function 
_GET() {
        foreach (
$_GET as $nombre => $valor) {
            if (
$nombre != 'pag' && $nombre != 'v') {
                
$valor urlencode($valor) ;
                
$url .= $nombre."=".$valor."&" ;
            }
        }
        return 
$_SERVER['PHP_SELF']."?".$url ;
    }



     private static function 
_q() {
        
    if(!empty(
$_GET['q'])){$q $_GET['q'];} else {
    
$Palabras = Array('lima','cusco','ceviche','arequipa','turismo','politica');
    
$q "peru+".$Palabras[rand(0,(count($Palabras)-1))];
    }
    return(
str_replace(" ","+",$q));

     }

     private static function 
_API() {
        
$Api self::$DireccionAPI."method=youtube.videos.list_by_tag&dev_id=".self::$dev_id."&tag=".self::_q()."&page=".(self::_Pag()*20)."&per_page=".self::$TotalResultados;
        return(
$Api);
    }

     private static function 
_ExtraerCodigo() {
                
$url self::_API();

        if(
function_exists('file_get_contents')) $html = @file_get_contents($url);
        else 
$html = @join('',file($url));
        return(
str_replace(array("\r","\n"),'',$html)); //str_replace(array("\r","\n"),'',$html);
    
}


/*
    public static function Video() {
        $id   = self::id($url);
        $html = self::_ExtraerCodigoVideo('http://www.youtube.com/watch?v='.$id);
    }
*/




    
public static function _Paginacion($totals){

    
$TotalPaginas ceil((($totals 20)?($totals):(20))/self::$TotalResultados);

    
$Anterior = (self::_Pag() > 1) ? (" <a class=enlacerojo href='".self::_GET()."pag=".(self::_Pag()-1)."'>&#171 Anterior</a> ") : (" <font class=style6>&#171 Anterior</font> ");

    
$Siguiente = (self::_Pag() < $TotalPaginas) ? (" <a class=enlacerojo href='".self::_GET()."pag=".(self::_Pag()+1)."'>Siguiente »</a> ") : (" <font class=style6>Siguiente »</font> ");


    echo 
$Anterior;


    for(
$pag = (self::_Pag()-5); $pag <= (self::_Pag()+5); $pag++ ){

    if(
$pag && $pag <= $TotalPaginas ){

    if(
$pag == self::_Pag()){
    echo 
" <font class=style6>".$pag."</font> ";
    }else {
    echo 
" <a class=enlacerojo href='".self::_GET()."pag=".$pag."'>".$pag."</a> ";
    }

    }
    }


    echo 
$Siguiente;

    }


    public static function 
VideosYoutube(){
    
$_Codigo self::_ExtraerCodigo();

    
preg_match_all("/<rating_avg>(.*?)<\/rating_avg>/",$_Codigo,$Ranking);
    
preg_match_all("/<id>(.*?)<\/id>/",$_Codigo,$id);
    
preg_match_all("/<title>(.*?)<\/title>/",$_Codigo,$Titulo);
    
preg_match_all("/<length_seconds>([0-9]+)<\/length_seconds>/",$_Codigo,$Duracion);    
    
preg_match("/<total>([0-9]+)<\/total>/",$_Codigo,$Total);    
    
$columna 0;

    
self::_Paginacion($Total['1']);
    echo 
'<br />';
    echo 
'<table border="0" width="100%" cellspacing="0" cellpadding="0" ><tr>';
    for(
$i 0$icount($id['0']); $i++){ $columna++;


    
$seg $Duracion['1'][$i];
    
$minutos number_format($seg/60,00);
    
$segundos $seg 60;

    echo 
'<td  width="50%" valign=top style="border-top: 1px dotted #ccc;border-right: 1px dotted #ccc;padding:0px"><br />

<a href="../videosperu/?v='
.$id['1'][$i].'&q='.str_replace(" ","+"$_GET['q']).'&pag='.$_GET['pag'].'" class="EstilosClasificac">
<img border=0 width="75" height="50" src="http://img.youtube.com/vi/'
.$id['1'][$i].'/1.jpg" alt="'.($Titulo['1'][$i]).'"> <img border=0 width="75" height="50" src="http://img.youtube.com/vi/'.$id['1'][$i].'/2.jpg" alt="'.($Titulo['1'][$i]).'"> <img border=0 width="75" height="50" src="http://img.youtube.com/vi/'.$id['1'][$i].'/3.jpg" alt="'.($Titulo['1'][$i]).'"> 
</a
    <br />
<div align=left class="negromenu" style="padding-left:10px">
<a href="../videosperu/?v='
.$id['1'][$i].'&q='.str_replace(" ","+"$_GET['q']).'&pag='.$_GET['pag'].'" class="EstilosClasificac">'.self::_CodificarTexto($Titulo['1'][$i]).'</a>
<br />

<div style="float:left"><b>Duración: </b>'
.$minutos.':'.$segundos.' </div>

<div style="margin-left:20px;float:left;height:10px; width:50px; background-image: url(../images/estrellas_plomas.jpg);">
<div style="height:10px; width:'
.@($Ranking['1'][$i]*10).'px; background-image: url(../images/estrellas_rojas.jpg);"><img src="" height="1" width="1"></div></div>

</div>

</td>'
;
    if((
$columna%2) == 0){echo '</tr><tr>';} 

    }
    echo 
'</tr></table>';    echo '<br />';
    
self::_Paginacion($Total['1']);
    }






    } 
#


if(!empty($_GET['v'])){
_Buscador_Youtube::Video("http://www.youtube.com/watch?v=".$_GET['v']);
}


$Titulo = ((!empty($_GET['v']))?(_Buscador_Youtube::$Titulo.' - '):(''))."VIDEOS DEL PERU - Peru Avisos .com - El Portal de noticias y Anuncios Clasificados GRATIS mas grande del Peru";
$Descripcion "El Portal de noticias y Anuncios Clasificados GRATIS mas Grande del Perú, Donde ademas Encontrara Directorio de Empresas Peruanas, Buscador de Paginas del PERU, Peruanos en el Extranjero, Profesionales Peruanos y Noticias Peruanas.";
$Tag "noticias, rpp noticias, peru21, diario el comercio, peru, avisos clasificados, publicar gratis anuncios clasificados, comercio electronico, empleos peru, automotores, inmobiliarias, alquileres de departamentos, buscadores de paginas peruanas, profesionales, compra y venta de productos y servicios, publica gratis con fotografias y en espaol.";

include_once(
"../CodigoHTML/HTML.Superior.php");



?>

<br />

<center>
<form method="get" action="">
<input style="width:350px" type="text" name="q">


<input type="submit" value="Buscar video">



</form>
<?php 

if(!empty($_GET['v'])){


if(!empty(
_Buscador_Youtube::$id)){

//$tags = explode(", ",_Buscador_Youtube::$Tags);

echo '<div style="width:500px">
<center><object width="500" height="344"><param name="movie" value="http://www.youtube.com/v/'
._Buscador_Youtube::$id.'&hl=en&fs=1"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/'
._Buscador_Youtube::$id.'&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="344"></embed>
</object>
<div align=left style="font: 13px Arial">
<b>Titulo: </b>'
.iconv("UTF-8""ISO-8859-1"_Buscador_Youtube::$Titulo).'<br /><br />
<b>Descripción: </b>'
.iconv("UTF-8""ISO-8859-1"_Buscador_Youtube::$Descripcion).'<br /><br />
<b>Tag: </b>'
.iconv("UTF-8""ISO-8859-1"_Buscador_Youtube::$Tags).'<br />
</div>

</div><br />
'
;



} else {
echo 
"<h1 style='font: 14px Arial'><B>VIDEO SOLICITADO NO ENCONTRAD0</B><h2>";
}




    }

?>




<center>

<?



_Buscador_Youtube
::VideosYoutube();





include_once(
"../CodigoHTML/HTML.Inferior.php");



?>
Espero sus repuestas amigos
__________________
Las ideas estimulan la mente.(Eric Hoffer)
http://www.reycarlos.com
http://www.clasificadosde.com
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 17:18.