Obtener video FLV de YouTube

Filed Under (PHP) by admin on 09-01-2009

Tagged Under : , ,

Esta es la nueva manera de obtener el video de YouTube, los parámetros para get_video.php quedan iguales (video_id y t), pero t cambia y ahora no se obtiene al cargar el video, se tiene que llamar a otra URL para obtener esa información.

El método es muy fácil, los pasos son:

  1. Llamar a: 
    http://www.youtube.com/get_video_info.php?video_id=VIDEOID
    Donde VIDEOID es el id del video que vamos a obtener el archivo FLV (las ligas de YouTube para ver el video son como: http://www.youtube.com/v/VIDEOID)
    Tomaremos por ejemplo este:
    http://www.youtube.com/get_video_info.php?video_id=HDi9OeJqwG4 
  2. El resultado será en texto y tendrá muchas variables como:
    status=ok&title=Rob+Dougan+-+Furious+Angels&muted=0&avg_rating=4.8496592845&creator=eitch&length_seconds=237&vq=None&fmt_map=&token=OEgsToPDskKxBcum6P4BEStM-z3qkYZW&thumbnail_url=http%3A%2F%2Fi1.ytimg.com%2Fvi%2FHDi9OeJqwG4%2Fdefault.jpg&allow_ratings=True&plid=AARgErHUJPLX2RPWAAAAoABoIAE&track_embed=1
  3. De aqui solamente necesitamos obtener el parámetro token y pasarlo al ya conocido get_video.php:
    http://www.youtube.com/get_video.php?video_id=HDi9OeJqwG4&t=OEgsToPDskKxBcum6P4BEStM-z3qkYZW

Con esto ya obtendremos el FLV deseado, en PHP la rutina sería la siguiente:

<?php
//video id por defecto
$video_id = 'HDi9OeJqwG4';

if (isset($_REQUEST['video_id']))
        $video_id = trim($_REQUEST['video_id']);

//obtener informacion
$url_info = 'http://www.youtube.com/get_video_info.php?video_id='.$video_id;
$info = file_get_contents($url_info);

$vars = array();
parse_str($info, $vars);

$url_flv = 'http://www.youtube.com/get_video.php?video_id='.$video_id.'&t='.$var
s['token'];

print 'Archivo FLV: '.$url_flv;
?>

Con esto obtenemos la URL del archivo FLV.

Es importante notar que en Flex/Flash no se podrá cargar diréctamente get_video_info.php por la política del crossdomain de YouTube así que hay que utilizar un proxy.

El demo lo pueden probar desde:
http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube/?video_id=VIDEOID
Donde VIDEOID es el id del video de YouTube de su preferencia =)

El código fuente lo pueden descargar de:
http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_Youtube.tar.gz
 

 

 

 

Temas similares

Hola porque no pones el codigo de fuente en otro archivo .txt por que el archivo .tar.gz no lo puedo abrir…

Hola Raquel,
Descarga el 7-zip (http://www.7-zip.org) es un excelente descompresor de archivos que soporta la extensión tar.gz

Se me pasó decirte que el archivo lo único que tiene es un archivo index.php con el código PHP de esta página, así que puedes darle en “copy to clipboard” y tendrás el mismo contenido.

Hola ¿como podria obtener el titulo de un video de youtube con php(get_video_info.php)?

Hola raquel, está en la variable $vars :
print $vars['title'];

Saludos,

Graciass.
Como podria reducir todo el codigo en uno mas pequeño esque en mi web a los videos le quiero poner el nombre que tiene en youtube pero quisiera un cogido mas pequeño.
Saludos

Hola me gustaria saberpor que el codgio cuando lo pongo en mi web me sale un error.. ¿esta bien el codigo?

Hola el codigo esta bien solo que hay que sustituir esto ‘ y esto ’ por comillas y tienes que tener un hosting que tenga la opcion cURL de PHP

Post a comment