Daily Archive for Octubre 10th, 2007

Trabajando con la nueva API de Youtube

No es mi costumbre poner artículos técnicos, pero aprovechando que tenía tiempo libre me puse a investigar un poco, para ver la manera de hacer un buscador de videos de youtube. Lo primero que vi en cuanto comence, es que habían sacado una nueva API (Si no me equivoco, lo hicieron en Agosto) basada en el estandar de Google Data (GDATA), que recomiendan utilizar en lugar de la anterior. Pero claro, te la recomiendan utilizar, mas no encuentras en ningun lado información en castellano para utilizarla. Esto ha hecho que me decida a hacer un pequeño tutorial de como utiilizar el API con el cliente PHP que ellos te ofrecen.

Lo primero que debemos hacer es descargarnos la ultima versión del cliente. Ahora mismo esta en desarrollo, por lo que la versión que nos bajemos no sera completamente estable, aunque a mi no me ha dado ningun problema. Yo estoy trabajando con la del día 9-10-07, pero os recomiendo que vayais a http://framework.zend.com/download/snapshot y os bajeis la última que haya.

Una vez descargada, la descomprimimos y subimos a nuestro servidor únicamente la carpeta Zend que se encuentra dentro de la carpeta library. El resto son ejemplos y documentación, que puede ser interesante que le echeis una ojeada.

Ahora ya estamos listos para empezar a trabajar.
- Primero cargamos la clase necesaria y la instanciamos


require_once './Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();

- Creamos la instancia de la consulta y la completamos


$query = $yt->newVideoQuery();
$buscar=$_GET['buscar'];
$query->videoQuery = $buscar;
$query->startIndex = 1;
$query->maxResults = 12;
$query->orderBy = 'updated';

Los parametros que se utilizan en la consulta son:
* videoQuery: la cadena de texto a buscar
* startIndex: desde que elemento, se comenzara la busqueda
* maxResult: numero de resultados máximo que contendra la búsqueda.
* orderBy: como se ordenarán los resultados (puede ser ‘updated’, ‘viewCount’ o ‘relevance’)

Para ver una explicación más extensa de los parametros ir a la guia de referencia (en inglés)

- Hacemos la petición


$videoFeed = $yt->getVideoFeed($query);
echo htmlBusqueda($videoFeed);

La llamada nos devuelve un array que tratamos en la funcion htmlBusqueda. Lo que yo he utilizado es


foreach ($videoFeed as $videoEntry) {
$url=$videoEntry->mediaGroup->player[0]->url;
$imagen=$videoEntry->mediaGroup->thumbnail[0]->url;
$titulo=$videoEntry->mediaGroup->title->text;
}

Luego ya depende de cada uno para dejarlo bonito. Yo como no soy diseñador no me lo he currado demasiado. Lo que si he hecho es aprovechar el script para bajar videos de youtube y hacer que los videos de los resultados se puedan bajar directamente. Lo podeis ver en la sección de Aplicaciones