Archivo de Mayo, 2008
Como ver videos con la API de YouTube (II)
Bueno, lo prometido es deuda… seguimos.
Utilizando la API de YouTube. Parte 2.
Tema: Como ver videos con la API de YouTube.
Ocuparemos los mismos requisitos que la primera lección.
Para este procedimiento no ocuparemos la Developer Key y tampoco necesitaremos “loguearnos” en youtube.
Creamos un PHP puede ser vervideo.php
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();
Ya esta parte la vimos, llamamos a la librería Zend, cargamos una clase Youtube y creamos el objeto.
$IDVideo = 'MbNH00ZXeLk';
$NuestroVideo = $yt->getVideoEntry($IDVideo);
Guardamos toda la información del video en $NuestroVideo, ahora vamos a obtener la información y mostrarla.
$direccion = $NuestroVideo->getFlashPlayerUrl();
//Obtenemos mas informacion del video y la mostramos
$Titulo = $NuestroVideo->getVideoTitle();
echo "Titulo: " . $Titulo . "<br />";
echo "Descricion: " . $NuestroVideo->getVideoDescription() . "<br />";
echo "Categoria: " . $NuestroVideo->getVideoCategory() . "<br />";
echo "Tags: " . implode(", ", $NuestroVideo->getVideoTags()) . "<br />";
echo "Verlo en Youtube: " . $NuestroVideo->getVideoWatchPageUrl() . "<br />";
echo "Duracion del video: " . $NuestroVideo->getVideoDuration() . "<br />";
echo "Visitas: " . $NuestroVideo->getVideoViewCount() . "<br />";
Esta parte se explica por si misma, puedo añadir, que si uno quiere puede guardar la información en variables y después mostrarla, como en el caso de la Url Flash y el Titulo, que yo guardé porque lo voy a utilizar unas 3 veces mas adelante (y no seria correcto llamar a la funcion getFlashPlayerUrl() o getVideoTitle() cada vez)
Ya tenemos toda la información del video, falta mostrarlo
echo "<b>". $Titulo . "</b><br />
<object width='425' height='350'>
<param name='movie' value='" . $direccion . "&autoplay=1'></param>
<param name='wmode' value='transparent'></param>
<embed src='" . $direccion . "&autoplay=1' type='application/x-shockwave-flash' wmode='transparent'
width=425' height='350'></embed>
</object>
";
Listo, que les pareció…sencillo verdad, la próxima lección veremos como utilizar el Chromeless Player (el reproductor de youtube sin marco y botones).
Descarga | Ejercicio 2
3 comentariosComo subir videos con la Api de YouTube (I)
Inauguramos nuestro blog hace poco. Y queremos enfocarnos en las conocidas APIs (y muchos temas mas, claro) pero este es un sector que viene en aumento… y es difícil encontrar documentación al respecto (en nuestro idioma).
Bueno, entonces empezaremos con nuestro primer curso.
Utilizando la API de YouTube. Parte 1
Tema: Como subir videos con la Api de YouTube.
Espero no empezar con material muy pesado, pero he buscado esta información por todo lado y no encuentro nada. Ojala les sirva.
Requisitos:
- PHP 5.1.4
- La librería de Zend Framework (viene con demos)
- Developer Key que se puede obtener aqui
- Cuenta de Youtube
La estructura de los archivos es sencilla (un archivo y una carpeta)
- index.php
- Zend (esta carpeta viene en el comprimido de arriba y es la librería)
Abrimos nuestro index.php y digitamos: (no se te olvide la etiquetas de php al inicio y final del archivo)
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Revisemos linea por linea.
En la primera incluimos la libreria de Zend, en las siguientes 3 creamos una clase AuthSub, ClientLogin y claro la de Youtube.
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = 'SU USUARIO@gmail.com',
$password = 'SU PASSWORD',
$service = 'youtube',
$client = null,
$source = 'MiYoutube', // un nombre para identificar la aplicacion
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$millave = 'LA LLAVE o DEVELOPER KEY';
$httpClient->setHeaders('X-GData-Key', "key=${millave}");
$yt = new Zend_Gdata_YouTube($httpClient);
$authenticationURL es la direccion donde vamos a enviar los datos que siguen (No cambiar)
Guardamos en $httpClient en valor de la función getHttpClient de la clase que definimos anteriormente ClientLogin, a la cual le enviamos 8 variables de la que debemos cambiar estas:
$username es la cuenta de correo que tenemos ligada con nuestra cuenta de youtube (en este caso debe ser de Gmail, mas adelante enseñaré con otras cuentas)
$password el password de la cuenta
$source es un nombre para identificar la aplicación.
Colocamos nuestra Llave, la pasamos como cabecera a nuestro elemento $httpClient
Después creamos el objeto $yt que es una clase de Youtube con el parametro $httpClient.
Hasta aqui nuestro script funciona para lo que es la Autentificacion en Youtube.
Vamos a subir un video, ya que estamos “logeados” a nuestra cuenta.
$miVideo= new Zend_Gdata_YouTube_VideoEntry();
// Creamos un objeto media group
$mediaGroup = $yt->newMediaGroup();
$mediaGroup->title = $yt->newMediaTitle()->setText('Video subido con la API');
$mediaGroup->description = $yt->newMediaDescription()->setText('Mi primer video subido con la Api de Youtube. Curso del manejo de la API por Avenidanet');
// Descarga el archivo que contiene los tags de youtube
$categoryScheme = 'http://gdata.youtube.com/schemas/2007/categories.cat';
$mediaGroup->category = array(
$yt->newMediaCategory()->setText('Tech')->setScheme($categoryScheme),
);
// agregamos los tags
$mediaGroup->keywords = $yt->newMediaKeywords()->setText('Avenidanet, prueba, api');
$miVideo->mediaGroup = $mediaGroup;
En el codigo anterior lo que vamos hacer es crear una clase VideoEntry (que es los datos del video) y le agregamos la características con el objeto MediaGroup
Vemos que podemos agregar:
- el titulo en $mediaGroup->title = $yt->newMediaTitle()->setText(’Video subido con la API’);
- la descripción en $mediaGroup->description = $yt->newMediaDescription()->setText(’Mi primer video subido con la Api de Youtube. Curso del manejo de la API por Avenidanet’);
- la categoría donde vamos a guardarlo en este caso Tech o tecnologia, se tomo como referencia del archivo http://gdata.youtube.com/schemas/2007/categories.cat donde vienen las etiquetas.
- y los tags en $mediaGroup->keywords = $yt->newMediaKeywords()->setText(’Avenidanet, prueba, api’); tiene que estar separados con (,) coma y no contener espacios
- Por ultimo agregamos mediagroup a mivideo
$tokenArray = $yt->getFormUploadToken($miVideo, $tokenHandlerUrl);
$clave= $tokenArray['token'];
$enviarloa = $tokenArray['url'];
//Este es el archivo que recibe la repuesta, mas adelante aprenderemos a leer esos datos
$devuelta = 'http://www.mipagina.com/videossubidos.php';
Lo anterior es el proceso para tomar la dirección de donde debemos enviar nuestro video en la variable $enviarloa con un token en $clave y adonde vamos a recibir la respuesta de como nos fue y el ID del video (si, ese que vemos en la url de youtube http://www.youtube.com/watch?v=yzUUJdMSL88).
Resumen:
- Ya nos “logeamos” en YouTube
- Tenemos la descripción de nuestro video en $miVideo (titulo, descripcion, etiqueta y tags) que utilizamos para generar la dirección donde enviarlo y token
- Sabemos donde enviarlo en $enviarloa y un token en $clave
- y donde recibiremos la repuesta $devuelta
- Que nos falta..
Claro, enviar el video… Facil creamos un formulario donde el usuario o nosotros busquemos un video de nuestro disco duro.
//Y introducimos los datos anteriores
$form = '
<form action="'. $enviarloa .'?nexturl='. $devuelta . <br /> '" enctype="multipart/form-data" method="post">'.
'<input name="file" type="file" />'.
'<input name="token" type="hidden" value="'. $clave .'" />'.
'<input type="submit" value="Subir video" />'.
'</form>';
//Mostramos el formulario
echo $form;
Sencillo, verdad… No te olvides del multipart/form-data, en el formulario, espera la siguiente clase…
Descarga | Ejercicio 1
17 comentariosNuevo Google Reader para Iphone

Para hacer de nuestro (y su) Reader iPhone una mejor experiencia, queríamos realmente aprovechar las capacidades del iPhone. Hoy estamos liberando una nueva versión beta de Reader diseñado para el iPhone y otros teléfonos móviles con navegadores avanzados. Puede usarlo de visitar http://www.google.com/reader/i/ en su teléfono.
Esta nueva versión está diseñada para ofrecer muchas de las mismas características que la version de escritorio, manteniendo lo fácil y rápido para actuar sobre los items. Si ha utilizado la vista de lista, entonces usted debe estar familiarizado. Escanee los títulos de un tema que le interese, toque y expanda en su lugar. Favoritos, compartidos y feeds no leídos en el mismo lugar, asi nunca tendrá que salir de la vista de lista o actualizar la página. Creemos que es una manera muy rápida para leer su lista de feeds.
Dado que esta en fase beta, la pagina no lo redireccionara inmediatamente, por lo que deberá ingresar a la dirección (http://www.google.com/reader/i/). Nos encanta recibir comentarios de los usuarios, y así saber lo que piensa de nuestro grupo de discusión o de otros canales.
Aun asi puedes probarlo desde tu navegador. http://www.google.com/reader/i/

