Buscador Youtube con PHP
- 01/09/2007
- 11:07 am
Youtube ha lanzado recientemente su nueva YouTube Data API que esta totalmente integrada con los servicios de Google, mediante la cual se puede acceder a la información de los vídeos alojados en este servicio. Aprovechando esta información implementaremos un buscador de vídeos Youtube utilizando PHP y SimplePie para mostrar la información.
YouTube Data API
La nueva API lanzada por YouTube es mucho mas potente y sencilla de utilizar, de acuerdo a la documentación se procede a envíar varios parámetro a cierta URL y nos devuelve un XML que puede ser Atom, RSS. En nuestro caso veremos la forma de obtener un listado de vídeos de acuerdo a un criterio de búsqueda. Para ello podemos acceder a la siguiente ruta:
-
http://gdata.youtube.com/feeds/videos
Este URL puede recibir varios parámetros por método GET, pero listamos los mas importantes y que vamos a utilizar.
- alt: El formato del resultado del feed, puede ser atom, rss o json.
- start-index: En el indice inicial para la lista de resultados de la busqueda.
- max-results: Numero de resultados mostrados en la lista.
- vq: criterio de búsqueda
Luego si deseamos buscar por ejemplo 'Santana' y mostrar los primero 10 resultados en RSS, deberíamos acceder a la siguiente ruta:
-
http://gdata.youtube.com/feeds/videos?vq=santana&alt=rss&start-index=1&max-results=10
Hasta el momento ya sabemos de donde extraer la información, lo siguiente es mostrarlo en nuestra página.
Mostrando la lista de vídeos
Como el resultado del API es un feed, podemos utilizar SimplePie, el cual es un parser de Feeds hecho en PHP del cual hemos comentado en SimplePie: Parser RSS o Atom.
Creamos un archivo llamado functions.php que contendrá las funciones necesarias para el funcionamiento de nuestro buscador. getVideoid, toma el URL y devuelve el Id del video, getVariable devuelve la variable pasada por método GET y si no existe esta variable devuelve un valor por defecto, feed2txt elimina todos los tags HTML de un texto.
-
function getVideoid($varurl) {
-
return $varid;
-
}
-
function getVariable($vparam, $vdefault) {
-
$result = $vdefault;
-
}
-
return $result;
-
}
-
function feed2txt($document){
-
'@<style[^>]*?>.*?</style>@siU',
-
'@<[\/\!]*?[^<>]*?>@si',
-
'@<![\s\S]*?--[ \t\n\r]*>@'
-
);
-
-
$excerpt_length = 60;
-
}
-
}
Luego procedemos a crear nuestra página, donde en primer lugar incluimos simplepie.inc y functions.php, luego creamos las variables necesarias para crear el URL a consultar.
-
require("simplepie.inc");
-
require("functions.inc");
-
$pageUrl = "http://gdata.youtube.com/feeds/videos";
-
$pageSiz = 10;
-
$pageQue = getVariable($_GET["query"], "oasis");
-
$pageNum = getVariable($_GET["page"], 1);
-
$pageIni = $pageNum*$pageSiz-9;
-
$pageEnd = $pageUrl."?vq=".$pageQue."&start-index=".$pageIni."&max-results=".$pageSiz."&alt=rss";
Notese que hemos creado una función llamada getVariable, que devuelve la variable pasada por método GET y si no existe esta variable devuelve un valor por defecto. $pageUrl contiene el URL al cual debemos acceder para tener el resultado de la búsqueda. Continuando creamos una instancia de SimplePie para parsear el Feed recién creado.
-
$vfeed = new SimplePie();
-
$vfeed->feed_url($pageEnd);
-
$vfeed->init();
-
$vfeed->handle_content_type();
-
$vmax = $vfeed->get_item_quantity();
Lo siguiente es recorrer el listado e imprimirlo en nuestra página, para ello creamos un FOR para recorrer todo el listado y utilizamos get_item para obtener cada registro que luego mostramos.
-
<?php
-
for ($x = 0; $x <$vmax; $x++) {
-
$vitem = $vfeed->get_item($x);
-
$video = getVideoid($vitem->get_id());
-
$vurl = "http://www.youtube.com/watch?v=".$video;
-
$vtitle = $vitem->get_title();
-
?>
-
<a href="<?php echo $vurl; ?>"><?php echo $vtitle; ?></a>
-
<br><em><?php echo $vitem->get_id(); ?></em>
-
<br><?php echo feed2txt($vitem->get_description()); ?><br>
-
<img src="http://img.youtube.com/vi/<?php echo $video; ?>/2.jpg">
-
</p>
-
<?php
-
}
-
?>
Uniendo estos bloques de código ya podemos mostrar el resultado de la búsqueda en nuestra página, el cual tiene la siguiente forma:
Lo que sigue es agregar el campo de texto para ingresar la búsqueda, crear una hoja de estilos para mejorar la apariencia y los enlaces para la paginación de resultados, agregar el reproductor de vídeo y la opción para descargar videos. Luego de todos estos agregados obtenemos nuestro tan esperado Buscador Youtube con PHP.
Finalmente les dejo los archivos fuente de este ejemplo, por favor si lo utilizan pongan un enlace a este blog, es la única forma de colaborar para seguir trabajando en este tipo de proyectos.
Posts Relacionados
- SpryTube: Buscador de Videos
- PHP Youtube Video Downloader
- Buscador AJAX Youtube
- Actualización de Sprytube
- Buscador MP3
Total de Comentarios: 43
[...] YouTube Buscador Youtube con PHP » This Summary is from an article posted at unijimpe on Saturday, September 01, 2007 Youtube ha lanzado recientemente su nueva YouTube Data API que esta totalmente integrada con los servicios de Google, … . Aprovechando esta información implementaremos un buscador de vídeos Youtube utilizando PHP y SimplePie para mostrar la información. YouTube Data API La nueva API lanzada por YouTube es mucho mas potente Summary Provided by Technorati.comView Original Article at unijimpe » 10 Most Recent News Articles About Linux [...]
Muy buen trabajo, muchas gracias por liberarlo, con unas ligeras modificaciones puede estar muy interesante, a ver que hago con él :P
Por cierto cierto como has licenciado el código? De todas formas haga lo que le haga lo voy a liberar, es lo justo. ¿no?
Le voy a quitar algo de javacript y a ver si puedo añadirle un botón o enlace que permita acceder a una url para ver el video.
[...] Por ejemplo la base de la web está basada en un script realizado por Unijimpe, el diseño es el Minyx 2.0 y los vídeos son de Youtube que se obtienen a partir de la YouTube Data API. [...]
Hola..esta interesante ese buscador ..he intentado subirlo a un alojador y me tira este error:
Warning: fsockopen() has been disabled for security reasons in /www/sites/1/iespana.es/c/l/miweb/site/ginotube/simplepie.inc on line 2238
Haber si me ayudas a corregir este error..porque me gustaria utilizar tu buscador..ya lo he intentado en dos host diferentes y me tira el mismo error ..espero tu respuesta gracias
Ah me olvidaba…cuando me tira ese error ..no busca ningun video ….
Lo que sucede es que SimplePie utiliza la librería CURL que abre conexiones con otros servidores, esto para leer el contenido del feed de Youtube, generalmente los host gratuitos como iespana lo tienen bloqueado. Puedes buscar otro servidor que si soporte esta librería.
Gracias !!!
Hola queria darte las gracias por el momento estaba buscando como hacer algo por el estilo y no sabia lo de las api de youtube ahora que vi los codigos y la documentacion realice un pequeño proyecto para uno en el que colaboro se llama
y ahora que vi los codigo empece a desarrollar una seccion la cual sera pequeño portal de videos el proyecto lo tengo por el momento en:
http://juarod39.100webspace.net/video.oaxacalibre/
pronto al cual le pienzo añadir ciertos efectillos en Ajax como una reproduccion en fullscreen tambien creo que le pondre una base de datos, no lo se la verdad estoy algo emosionado ya que yo pensaba generar un spider y todo un gran rollo pero ahora con la api valla que sobrara tiempo !!!!..
si estas interesado te mando los script que realice.
otra cosa que estaba pensando es en realisar un programa que genere descargas multiplataforma en java.
seria bueno buscar alguna documentacion de un ripper en la sourceforge.net
bueno espero que nos podamos poner de acuerdo para ver si realisamos algun proyecto o.k?
a mi no me da ningun error simplemente no me va, no muestra ningun video, a lo mejor es la version de php? uso la version 4.3.11
Bueno en localhost si me funciona a la perfeccion…pero cuando lo subo a un alojador gratuito ahi me da el error me dice fsockopen deshabilitado o algo asi …me comunique con las personas encargadas del host gratuito y me dijeron que la tienen deshabilitada por razones de seguridad…Bueno entons buscare un host pagado..luego comento
Hola ya si esta corriendo bien ya lo use en un host pagado ..gracias man….ahora tengo otras dudas como haria si quisiera que busque tambien en otros buscadores ..por ejemplo en esnips, osea si quisiera realizar buscadores de otras webs tambien cual es el dato que tendria que saber ? de esas webs ? espero me comprendas y ayudes gracias
Gino, para ello necesitarías acceso ala API pública de esas webs si la tienes o métodos mas sucios como sacar la info directamente del html que generan.
Bueno,..y como sabria o como podria obtener la API publica de la web …hay algun metodo para poder sacar su API publica o tendria que contactarme con el webmaster de esa web…bueno esa es mi duda como puedo obtener la API publica de cualquier web? porque he visto varios buscadores de distintas webs por la red..y la verdad me da muxa curiosidad por saber y asi yo tambien crear mis propios codes..
No todas tienen API pública, las que lo tengan lo pondrán en un lugar visible de todas formas, si no lo has encontrado es por que me imagino que no tiene.
q host soporta este archivos???
oye unijimpe puedes colocar aunque sa un hosting gratuito que soporte este buscador de videos porque ya e probado en varios hosting(webspacemania,gratishost,lycos,100mb,geocities) puedes colocar el nombre de un hosting que pueda funcionar este buscador…. si te lo agradeceria mucho…
hola gente.. alguien me puede ayudar… con lo siguiente.. saven si metiendo un link va al video pero en la web que arme yo ej:
http://www.mipagina.com/wach?idedelvideo osea… si se puee lo agradeceria mucho y otra cosa alguien sabe si se pueden meter el raiting? de los videos.. bueno eso es lo unico que neecesito para que sea mejor lla web jejej saludos
Hola,
hay alguna forma de hacer que el buscador solo realice la busqueda en una lista de reproducción determinada de youtube?
Yo tambien intente subirlo a mi servidor pero me da estos herrores.
Warning: curl_init() has been disabled for security reasons in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2175
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2181
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2182
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2183
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2184
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2185
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2186
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2187
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2188
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2191
Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2192
Warning: curl_exec(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2195
Warning: curl_errno(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2196
Warning: curl_errno(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2196
Warning: curl_errno(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2201
Warning: curl_getinfo(): supplied argument is not a valid cURL handle resource in /home/www/animexdeluxe.awardspace.com/youtube/simplepie.inc on line 2207
Alguien save de un hosting gratuito ke soporte este buscador?
Bueno por lo visto estan buscando un Hosting que soporte estos archivos, les quiero dar EN FORMA DE REGALO, a tres de ustedes Alojamiento por un año, para que lo prueben, solo les pido que no pongan nada de warez, no spam, no mp3 piratas, solo cosas serias como esta web. para Obtener registrese en: http://admin.ibizperu.com/cgi-bin/onlinesignup.cgi
y envienme un email a zosimo@gmail.com para saber quienes son y asi no cobrarles.
Saludos
———-
Zosimo Coronado Quicaña
Aloje su web en: http://www.ibizperu.com
Registre sus dominios en: http://www.ibizdominios.com
Telef: (511) 352-0934 | Cel: (511) 95650812
buenos dias señor , mi nombre es carlos y me gustaria saber por que ya no se puede reproducir los videos jalados de youtube es acaso que a cambiado de interfas youtube …e estado probando conectarme incluso en tu buscador de videos pero no funciona en verdad no se que pasa …me gustaria por favor que me explicaras a que se debe este problema …si no me crees aver ve en tu buscador de videos y pon cualquier grupo vera que no se reproduce…mi correo es yoniwoker@hotail.com
Hola, efectivamente Youtube ha cambiado su estructura de datos y no se puede acceder directamente. Por ahora he modificado temporalmente Sprytube y ya reproduce vídeos nuevamente pero aun no se puede descargar, cuando tenga todo resuelto lo pondré para descargar nuevamente.
Hola, yo tengo mi buscador http://murgal.net y no se puede descargar los videos con sprytube se puede?
Hola, en los últimos días Sprytube dejo de funcionar pues se cambiaron los URLs de los vídeos, ya hemos hecho una actualización y todo funciona nuevamente. Además puedes descargar los archivos fuente en: http://blog.unijimpe.net/actualizacion-de-sprytube/
dime y como modifico para diseñar del modo de mi pagina web la verdad es q soy novato en esto de php me podrias explicar mas detalladamente por favor
el tutorial mas detallada enviamelo a evwilly@hotmail.com grasias de antemano
http://www.piscurruray.com
Respecto a la modificación del diseño, puedes editar el archivo index.php con un editor de paginas web por ejemplo con Dreamweaver y allí puedes cambiar todo el diseño en un entorno visual.
Hola unijimpe no se si te habras dado cuenta ps tus videos no reproducen parece kle falta algo por k anteriormente si se podia ver los videos pero ahora no saludos
Ya lo he corregido y ahora funcionan correctamente, lo que pasa es que Youtube esta cambiando las rutas de los vídeos.
hola hoy dia es 14/11/2007 y bueno e provado tu buscador de videos y no funciona , a pasado algo seguramente , la verdad no se…tambien e provado en mi buscador de videos y nada de nada por favor crees que puedas resolverlo ya que es algo especial el buscador de videos…
discule senor , lo siento. si funciona el buscador de videos solo que me falta descargar macromedia flash , lo siento por las molestatias
hola quiero decirles que en spry tube no funciona lo estuve probando una y otra vwez pero no me dio ningun resultado
Hello,,have some one this files in a zip,,i not understand the language,,thanxx
hola, yo he hecho una web que le los feed de youtube, metacafe, livevideo y stage6 y muestra en una sola web los videos mas vistos, mas nuevos, mas comentados y mejores del dia en estas paginas. todas en un solo sitio http://www.flius.com
Cuando llamas un artista que no existe sale el siguiente error, tienes que pensar en una solución, pero de resto excelente buscador, felicitaciones.
Fatal error: Call to a member function on a non-object in /mnt/gs01/herd04/10556/domains/sprytube.unijimpe.net/html/index.php on line 93
hey.trato de descargar unos vide0s de unijimpe.net. pero es ke me dice la compu ke n0 tiene formato.. x ejemplo la pag. dice download video. i entonces le pongo ahi.. i lueg0 ia me dice guardar!!. pero dice typo f0rmat0 desk0n0cid0!!.. ent0nces k0m0 le pueg0 azer?
Lo que tienes que hacer es renombrar los archivos y colocarle la extensión .flv y luego puedes abrir estos archivo con cualquier reproductor de FLVs.
Como puedes acceder a los demas datos proveidos por youtube??
La misma pregunta que postnip Como puedes acceder a los demas datos proveidos por youtube por ejemplo la duración ?




