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:
- 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
[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
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.