<?php

class YouTube {

    var $http_video;

    function video($url) {
        $this->http_video = $url;
    }

    function flv() {
        $url = $this->http_video;
        $html = join("",file(&$url));
        preg_match('/\/player2\.swf\?(.*)", "movie_player"/', $html, $sh);
        $url = $sh[1];
        $url = "http://youtube.com/get_video.php?".$url;
        $ch_link = curl_init();
        curl_setopt($ch_link, CURLOPT_URL,$url);
        curl_setopt($ch_link, CURLOPT_HEADER,1);
        curl_setopt($ch_link, CURLOPT_RETURNTRANSFER,1);
        $lista = curl_exec($ch_link);
        curl_close($ch_link);
        $cortar = explode("\n",$lista);
        $link = $cortar[10];
        $link = str_replace("Location:","","$link");
        $link = str_replace(" ","","$link");
        return $link;
    }

    function xml() {
        $user= "y4Q8rgEmibY"; // este es el dev o usuario de Youtube
        $xml_url = $this->http_video;
        $xml_url = explode("=",$xml_url);
        $video_id = $xml_url[1];
        $dir_xml = "http://youtube.com/";
        $dir_xml.= "api2_rest?method=youtube.videos.get_details&dev_id=";
        $dir_xml.= $user;
        $dir_xml.= "&video_id=";
        $dir_xml.= $video_id;
        $xml = join("",file(&$dir_xml));
        return $xml; 
    }

    function mostrar($op) {
        $xml = $this->xml();
        preg_match('#<'.$op.'>(.*?)</'.$op.'>#',$xml,$dat);
        $data = $dat[1];
        return $data;
    }
}

// Aqui Termina La Class.

// Aqui Se Comienza a Usar La Clase.

$ok = new YouTube;
$ok->video("http://www.youtube.com/watch?v=bp-xBHR9yYA");
$flv_link = $ok->flv();
// La Funcion Mostrar usa la api xml de youtube para conseguir los datos del video
$titulo = $ok->mostrar("title");
$autor = $ok->mostrar("author");
echo $flv_link"<br>".$titulo."<br>".$autor;
?>