Script PHP para subir vídeos a Youtube
Thursday, March 26th, 2009Hace tiempo estuve trasteando, como hacía años que no hacía, con las APIs (Application Programming Interface) y haciendo alguna chorrada de las mías, mas que nada por echar ratos.
Con un par de ratos, con un estilo nulo de programación y con una solución chapuza, he realizado un script que sube un vídeo de una carpeta a tu cuenta de Youtube, bastaría con abrir la web para subir el vídeo, a partir de ahí las aplicaciones son infinitas.
Para que esto funcione, es necesario instalar las librerías de Zend_Gdata que puede descargarse aquí y seguir los pasos oportunos que pone aquí.
El script adjunto no tiene mucha descripción, creo que está bastante claro, bastaría con llamar a la página y pasarle como variable por el método GET el vídeo que se quiere subir.
$dir = "../../../../library/Zend/Gdata/App/";
$file=$_GET["file"];
$file=$dir.$file;
$titulo="Upload: ....."." ";
$desc="Upload: ....."." ";
$tags="test1,test2";
require_once '../../../../library/Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$developerKey = 'KEY_DE_LA_API';
$applicationId = 'tu_application_id';
$clientId = 'user_id';
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient =
Zend_Gdata_ClientLogin::getHttpClient(
$username = 'user_id',
$password = 'password',
$service = 'youtube',
$client = null,
$source = 'MySource',
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$filesource = $yt->newMediaFileSource($file);
$filesource->setContentType('video/quicktime');
$filesource->setSlug($file);
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle($titulo);
$myVideoEntry->setVideoDescription($desc);
$myVideoEntry->setVideoCategory('Autos');
$myVideoEntry->SetVideoTags($tags);
$myVideoEntry->setVideoDeveloperTags(array('mydevtag', 'anotherdevtag'));
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/users/default/uploads';
try {
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}
A modo de resumen:
- $dir es la varible del directorio donde está el vídeo a subir
- La variable se obtiene mediante método GET y nombre de la varibale “file”.
- $titulo, $desc y $tags son las variables de título, descripción y tags que pondrá al vídeo que se sube.
- El requiere_once incluye las librerias necesarias
- Se deben rellenar los valores de API_KEY, nombre y usuario de la cuenta asociada en Youtube.