Avenidanet

Como 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)

[cc lang="php" tab_size="2" lines="40"]

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’);

[/cc]

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.

[cc lang="php" tab_size="2" lines="40"]

$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);

[/cc]

$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.

[cc lang="php" tab_size="2" lines="40"]

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

[/cc]

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 Youtube. 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.youtube.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

[cc lang="php" tab_size="2" lines="40"]

$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’;

[/cc]

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.

[cc lang="php" tab_size="2" lines="40"]

// Contruimos el formulario

//Y introducimos los datos anteriores
$form = ‘

‘.

‘.

‘.

‘;

//Mostramos el formulario
echo $form;

[/cc]

Sencillo, verdad… No te olvides del multipart/form-data, en el formulario, espera la siguiente clase…

Descarga | Ejercicio 1

Avenidanet ya utiliza Google Apps

Ya disponemos de la opción de personalizar mas sus dominios, con el nuevo lanzamiento de Google Apps (Aplicaciones Google), el cual ya implementamos en nuestros servidores.

Pero que quiere decir esto???

  • Uds. pueden utilizar GMAIL para revisar sus cuentas de correo sunombre@empresa.com sin necesidad de tener una cuenta de Gmail.
  • Al utilizar Gmail tendrán mas de 6 Gigas de almacenamiento (y aumentando…)
  • Ilimitadas etiquetas, redireccionamientos, etc todo el soporte de Google para gestionar su correo
  • Ya no mas de webmail o la ardilla, si no que utilizaremos la plataforma de Gmail para revisar nuestros correos desde cualquier lado del mundo.
  • Logo personalizado (Se puede cambiar el logo de Google por el de su empresa)
  • Opcion de tener una pagina de inicio para revisar correo
  • Pagina para documentos de Excel, Word para editar en tiempo real sobre la plataforma de Google Docs
  • Calendario online para llevar nuestras tareas y revisarlas de donde sea. O que sus clientes vean sus actividades.
  • Y si desea le implementamos Google Talk, el chat de Google.