Jan
09Obtener video FLV de YouTube
Filed Under (PHP) by admin on 09-01-2009
Tagged Under : FLV, PHP, YouTube
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:
- Llamar a:Â
http://www.youtube.com/get_video_info.php?video_id=VIDEOID
DondeVIDEOIDes el id del video que vamos a obtener el archivoFLV(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 - 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
- De aqui solamente necesitamos obtener el parámetro
tokeny pasarlo al ya conocidoget_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
Â
Â
Â
Â
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