AvenidaNet. Programacion y diseño en Costa Rica

…sigue la ruta de la red

Archivo de Mayo, 2008

Como ver videos con la API de YouTube (II)

Bueno, lo prometido es deuda… seguimos.

Utilizando la API de . Parte 2.

Tema: Como ver videos con la API de .

Ocuparemos los mismos requisitos que la primera lección.

Para este procedimiento no ocuparemos la Developer Key y tampoco necesitaremos “loguearnos” en .

Creamos un PHP puede ser vervideo.php

// Llamamos a la libreria.
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 y creamos el objeto.

// El ID del video (ya saben las letritas esas de la direccion de youtube)
$IDVideo = 'MbNH00ZXeLk';
$NuestroVideo = $yt->getVideoEntry($IDVideo);

Guardamos toda la información del video en $NuestroVideo, ahora vamos a obtener la información y mostrarla.

//Esta es la direccion flash del video

$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

// Utilizamos el codigo embed que nos facilita youtube y lo adecuamos a nuestro codigo
   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 sin marco y botones).

Descarga | Ejercicio 2

3 comentarios

Como subir videos con la Api de YouTube (I)

Inauguramos nuestro blog hace poco. Y queremos enfocarnos en las conocidas (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 . Parte 1

Tema: Como subir videos con la Api de .

Espero no empezar con material muy pesado, pero he buscado esta información por todo lado y no encuentro nada. Ojala les sirva.

Requisitos:

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)

require_once 'Zend/Loader.php'; // Esta es la ruta del archivo loader.php que esta en la carpeta Zend

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 .

$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';

$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 (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 con el parametro $httpClient.

Hasta aqui nuestro script funciona para lo que es la Autentificacion en .

Vamos a subir un video, ya que estamos “logeados” a nuestra cuenta.

// Creamos una clase para la entrada del video
$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:

  1. el titulo en $mediaGroup->title = $yt->newMediaTitle()->setText(’Video subido con la API’);
  2. la descripción en $mediaGroup->description = $yt->newMediaDescription()->setText(’Mi primer video subido con la Api de . Curso del manejo de la API por Avenidanet’);
  3. la categoría donde vamos a guardarlo en este caso Tech o tecnologia, se tomo como referencia del archivo http://gdata..com/schemas/2007/categories.cat donde vienen las etiquetas.
  4. y los tags en $mediaGroup->keywords = $yt->newMediaKeywords()->setText(’Avenidanet, prueba, api’); tiene que estar separados con (,) coma y no contener espacios
  5. Por ultimo agregamos mediagroup a mivideo
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$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 http://www..com/watch?v=yzUUJdMSL88).

Resumen:

  • Ya nos “logeamos” en
  • 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.

// Contruimos el formulario

//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 comentarios

Nuevo Google Reader para Iphone

Traducción de Google Reader
Los navegadores web móviles han recorrido un largo camino desde que se introdujo por primera vez una versión XHTML del Reader en 2006. Por ejemplo, los propietarios (el equipo de Reader) de e iPod Touch tienen en sus equipos un poderoso navegador Safari. Y lo utilizan para matar el tiempo, otras veces para responder a importantes preguntas que surgen durante el almuerzo: ¿Cual es el nombre de Tyrol? ¿Cómo se hace la mantequilla de maple? ¿Qué esta diciendo ahora John Gruber ? Para preguntas como la última de ellas, por supuesto usamos Reader y revisamos nuestras suscripciones
.

Para hacer de nuestro (y su) Reader una mejor experiencia, queríamos realmente aprovechar las capacidades del . Hoy estamos liberando una nueva versión beta de Reader diseñado para el y otros teléfonos móviles con navegadores avanzados. Puede usarlo de visitar http://www..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..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/

No hay comentarios

Entradas Siguientes »