Foros del Web » Programando para Internet » PHP »

Subir video con la API de youtube con php desde mi web

Estas en el tema de Subir video con la API de youtube con php desde mi web en el foro de PHP en Foros del Web. Buenas noches, llevo 1 semana completa dia tras noche tratando de subir un video de mi web a youtube, entre lo que he consultado encontre ...
  #1 (permalink)  
Antiguo 17/07/2011, 19:10
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Subir video con la API de youtube con php desde mi web

Buenas noches, llevo 1 semana completa dia tras noche tratando de subir un video de mi web a youtube, entre lo que he consultado encontre que esto se puede hacer por medio de la API de youtube, pero he intentado de miles formas y nada.

el codigo que he encontrado y usado en mi caso es el siguiente.


require_once 'Zend/Loader.php'; // the Zend dir must be in your include_path
Zend_Loader::loadClass('Zend_Gdata_YouTube');
$yt = new Zend_Gdata_YouTube();


Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');


// autenticacion

$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
$username = '[email protected]',
$password = 'miclave',
$service = 'youtube',
$client = null,
$source = 'nombre_producto', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);

$myDeveloperKey = 'AI39.....cmFw'; // llave de mi producto o cuenta

$httpClient->setHeaders('X-GData-Key', "key=${myDeveloperKey}");
$yt = new Zend_Gdata_YouTube($httpClient);


// subir video

$yt = new Zend_Gdata_YouTube($httpClient);
// create a new Zend_Gdata_YouTube_VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

// create a new Zend_Gdata_App_MediaFileSource object
$filesource = $yt->newMediaFileSource('1.mp4');
$filesource->setContentType('video/quicktime');
// set slug header
$filesource->setSlug('1.mp4');

// add the filesource to the video entry
$myVideoEntry->setMediaSource($filesource);

// create a new Zend_Gdata_YouTube_MediaGroup object
$mediaGroup = $yt->newMediaGroup();
$mediaGroup->title = $yt->newMediaTitle()->setText('My Test Movie');
$mediaGroup->description = $yt->newMediaDescription()->setText('My description');

// the category must be a valid YouTube category
// optionally set some developer tags (see Searching by Developer Tags for more details)
$mediaGroup->category = array(
$yt->newMediaCategory()->setText('Autos')->setScheme('http://gdata.youtube.com/schemas/2007/categories.cat'),
$yt->newMediaCategory()->setText('mydevelopertag')->setScheme('http://gdata.youtube.com/schemas/2007/developertags.cat'),
$yt->newMediaCategory()->setText('anotherdevelopertag')->setScheme('http://gdata.youtube.com/schemas/2007/developertags.cat')
);

// set keywords
$mediaGroup->keywords = $service->newMediaKeywords()->setText('cars, funny');
$myVideoEntry->mediaGroup = $mediaGroup;

// set video location
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$where = $yt->newGeoRssWhere();
$position = $yt->newGmlPos('37.0 -122.0');
$where->point = $yt->newGmlPoint($position);
$entry->setWhere($where);


//upload URL for the currently authenticated user
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/users/default/uploads';



try {
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}


al ejecutar mi script me saca el siguiente error

Fatal error: Call to a member function newMediaKeywords() on a non-object in /home/soade/public_html/index.php on line 67


por favor alguien que ya alla pasado por esto y sepa como resolver mi problema le agradezco enormemente me ayude, mil gracias de nuevo.
  #2 (permalink)  
Antiguo 17/07/2011, 20:09
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Subir video con la API de youtube con php desde mi web

Te has dado cuenta que la variable $service no tiene ningún objeto iniciado? estas intentando acceder a un metodo en una variable vacía
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 18/07/2011, 14:55
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

Cita:
Iniciado por Nemutagk Ver Mensaje
Te has dado cuenta que la variable $service no tiene ningún objeto iniciado? estas intentando acceder a un metodo en una variable vacía
Muchas gracias Nemutagk, por su respuesta que valor debo colocar en esa variable.

  #4 (permalink)  
Antiguo 18/07/2011, 16:05
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Subir video con la API de youtube con php desde mi web

Este parte del código esta completamente mal..
Código PHP:
Ver original
  1. $mediaGroup->keywords = $service->newMediaKeywords()->setText('cars, funny');
  2. $myVideoEntry->mediaGroup = $mediaGroup;

Debería ser..
Código PHP:
Ver original
  1. $myVideoEntry->SetVideoTags('cars, funny');

En la documentación de Zend Framework viene muy bien explicado como subir archivos a youtube... vamos, que dándole una buena leída verías el error

PD: como NO INDICAS la versión de ZF con la que estas trabajando estoy SUPONIENDO que usas la 1.11...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 18/07/2011, 21:29
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

Buenas noches Nemutagk, al parecer eres un experto en el tema, por mas que he leido no he podido encontrar nada consiso, si tiene el link del manual que esta siguiendo le agradezco infinitamente lo comparta en este post.

Una ves corregido la linea de codigo anterior me saca ahora este nuevo error.


Fatal error: Call to a member function setWhere() on a non-object in /home/soade/public_html/youtubemio.php on line 78


La version de Zend framework que estoy manejando es la 1.11.8.

de nuevo muchisimas gracias, es bueno contar con personas expertas que estan dispuestas a colaborar sin compromiso alguno.

gracias.
  #6 (permalink)  
Antiguo 18/07/2011, 21:37
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Subir video con la API de youtube con php desde mi web

Amigo, en la misma página de ZF esta el manual completo de Framework, en esta página esta la documentación de la API de YouTube en Zend_GData_Youtube, en la parte de abajo de la página hay una zona que dice "Uploading Videos to YouTube" y hay esta el código de ejemplo

Siempre el mejor lugar para despejar dudas son los manuales oficiales de las aplicaciones/lenguajes que se usan!!!

PD: El nuevo error es igual al anterior, estas intentando acceder a un método en un objeto inexistente, la variable $entry esta vacía!!!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 18/07/2011, 22:27
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

de nuevo por aca, he cambiado parte de mi codigo por esto

$yt = new Zend_Gdata_YouTube($httpClient);
// create a new Zend_Gdata_YouTube_VideoEntry object
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

// create a new Zend_Gdata_App_MediaFileSource object
$filesource = $yt->newMediaFileSource('1.mp4');
$filesource->setContentType('video/quicktime');
// set slug header
$filesource->setSlug('1.mp4');

// add the filesource to the video entry
$myVideoEntry->setMediaSource($filesource);

// create a new Zend_Gdata_YouTube_MediaGroup object
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// Note that category must be a valid YouTube category !
$myVideoEntry->setVideoCategory('Comedy');
$myVideoEntry->SetVideoTags('cars, funny');


// the category must be a valid YouTube category
// optionally set some developer tags (see Searching by Developer Tags for more details)
$mediaGroup->category = array(
$yt->newMediaCategory()->setText('Autos')->setScheme('http://gdata.youtube.com/schemas/2007/categories.cat'),
$yt->newMediaCategory()->setText('mydevelopertag')->setScheme('http://gdata.youtube.com/schemas/2007/developertags.cat'),
$yt->newMediaCategory()->setText('anotherdevelopertag')->setScheme('http://gdata.youtube.com/schemas/2007/developertags.cat')
);


// Optionally set some developer tags
$myVideoEntry->setVideoDeveloperTags(array('mydevelopertag',
'anotherdevelopertag'));

// Optionally set the video's location
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$where = $yt->newGeoRssWhere();
$position = $yt->newGmlPos('37.0 -122.0');
$where->point = $yt->newGmlPoint($position);
$myVideoEntry->setWhere($where);

// Upload URI for the currently authenticated user
$uploadUrl =
'http://uploads.gdata.youtube.com/feeds/users/default/uploads';

// Try to upload the video, catching a Zend_Gdata_App_HttpException
// if availableor just a regular Zend_Gdata_App_Exception

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();
}

y aunque no me saca ningun error, tampoco me sube el video a youtube, me hace falta alguna otra cosa ? o sera porque el video que intento subir es mp4 ? acudo a sus conocimientos.

y muchas gracias por la ayuda que he recibo de ustedes.
  #8 (permalink)  
Antiguo 18/07/2011, 22:34
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Subir video con la API de youtube con php desde mi web

Ah, y cual es el error? cual es el problema o.O
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 18/07/2011, 22:39
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

Cita:
Iniciado por Nemutagk Ver Mensaje
Ah, y cual es el error? cual es el problema o.O
no afortunadamente no tengo ningun error, el problema es que he ido a mi cuenta en youtube para ver si efectivamente subio el video pero no aparece, es decir no lo subio.

gracias de nuevo.
  #10 (permalink)  
Antiguo 18/07/2011, 22:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Subir video con la API de youtube con php desde mi web

No se como tengas configurado PHP en cuanto a errores y warnings, pero has pensado que el peso del vídeo puede ser demasiado y no alcanza a subir?

Ahora otra cosa, en la documentación indica que el hecho de subir el vídeo no quiere decir que este disponible desde ese momento ya que lleva un proceso interno, así que es posible que tu vídeo aun este en este proceso...

Sin mas datos es difícil ayudarte, ya que no eh trabajado con la API de Youtube para subir vídeos
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #11 (permalink)  
Antiguo 18/07/2011, 23:11
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

amigo nemutagk el video es pequeño 15 segundos, quizas sea que esta en el proceso de subida y no se ha completado, de igual forma esperaré hasta el dia de mañana, le agradezco toda su ayuda.
Mañana a primera hora estare revisando, feliz noche.

Pd. si necesita cualquier informacion no dude en pedirmela pues estoy dispuesto a brindar cualquier data para lograr dar solucion a mi problema.

gracias y mil gracias.
  #12 (permalink)  
Antiguo 19/07/2011, 12:06
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

Muchas gracias amigo, es bueno contar siempre con la ayuda de profesionales que estan dia a dia comprometidos con las necesidades de los demas, por fin he logrado subir un video a youtube, si tiene un manual donde me hable mas sobre el tema le agradezco me lo facilite y de esa manera obtener un poco mas de experiencia en el tema..

una vez subido el video quisiera saber como puedo consultar ese video guardado y mostrarlo en la misma pagina donde se hizo el proceso de guardado, se podra con la misma api ? como lo hago ?


de nuevo muchas gracias por su valioso tiempo
  #13 (permalink)  
Antiguo 04/08/2011, 19:30
 
Fecha de Ingreso: enero-2010
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Subir video con la API de youtube con php desde mi web

He retomado este tema porque no he podido conseguir mostrar el video en mi web una ves guardado.
En la documentación de zend explican como buscarlo por el id, por el nombre, por algún usuario especifico, entre otras formas mas, pero lo que quiero es que una vez suba el video, guardar en mi base de datos ese código que youtube le asigno a dicho video y luego buscar y mostrarlos todos en mi web.

no se si se pueda o haya alguna manera de hacer lo que necesito, basicamente seria saber que ID asigno youtube al video recien subido desde mi web.

mil gracias, bendiciones.

Etiquetas: api, html, video, youtube
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.