2010-11-16 35 views
0

Je fais un site dans cakephp où les utilisateurs peuvent télécharger des vidéos et ceux qui sont publiés sur le site une fois approuvé par le modérateur. Actuellement, j'accepte les fichiers vidéo en cours de téléchargement sur mon serveur. Ces fichiers seront téléchargés et vérifiés par le modérateur et s'ils semblent bien, le modérateur cliquera sur un bouton qui téléchargerait la vidéo sur youtube et enregistrer un lien dans la base de données. Maintenant, j'utilise ClientLogin pour m'authentifier avec YouTube et essayer de télécharger la vidéo en utilisant les bibliothèques Zend Gdata. Il n'y a pas beaucoup de documentation disponible à ce sujet et je suis aussi ne reçoit aucune erreur de retour, mais ce ne fonctionne pas:Chargement de la vidéo depuis le site Web backend vers YouTube

require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata_YouTube'); 
Zend_Loader::loadClass('Zend_Gdata_CLientLogin'); 
Zend_Loader::loadClass('Zend_Gdata_App_Exception'); 
Zend_Loader::loadClass('Zend_Gdata_App_AuthException'); 
Zend_Loader::loadClass('Zend_Gdata_App_HttpException'); 
Zend_Loader::loadClass('Zend_Gdata_YouTube_VideoEntry'); 

// Define variables 
$email = '[email protected]'; 
$passwd = 'pass'; 
$applicationId = 'company-app-1.0'; 
$developerKey = 'AI39si5GGdQnX588uduNxgZL6I_UW32dr43FVH0ehf2jqN3CBIk5PIZHOG1-ag_Q8eaVlWnIxP7fLS3UW5Ofg45MzAxmW4XyAFw'; 

// Creating a ClientLogin authenticated Http Client 
try { 
    $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl'); 
} catch (Zend_Gdata_App_CaptchaRequiredException $cre) { 
    echo 'URL of CAPTCHA image: ' . $cre->getCaptchaUrl() . "\n"; 
    echo 'Token ID: ' . $cre->getCaptchaToken() . "\n"; 
} catch (Zend_Gdata_App_AuthException $ae) { 
    echo 'Problem authenticating: ' . $ae->exception() . "\n"; 
} 

// Passing a Developer Key and ClientID to Zend_Gdata_YouTube 
$yt = new Zend_Gdata_YouTube($client, $applicationId, null, $developerKey); 


// Uploading a video 

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry(); 
$filesource = $yt->newMediaFileSource('001.mov'); 
$filesource->setContentType('video/quicktime'); 
$filesource->setSlug('001.mov'); 
$myVideoEntry->setMediaSource($filesource); 
$myVideoEntry->setVideoTitle('My Test Movie'); 
$myVideoEntry->setVideoDescription('My Test Movie'); 

// Note that category must be a valid YouTube category ! 
$myVideoEntry->setVideoCategory('Comedy'); 

// Set keywords, note that this must be a comma separated string 
// and that each keyword cannot contain whitespace 
$myVideoEntry->SetVideoTags('baby, funny'); 

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

// Set Video as Private 
$myVideoEntry->setVideoPrivate(); 

// Upload URI for the currently authenticated user 

$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/app/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(); 
} 

try { 
    $control = $videoEntry->getControl(); 
} catch (Zend_Gdata_App_Exception $e) { 
    echo $e->getMessage(); 
} 

if ($control instanceof Zend_Gdata_App_Extension_Control) { 
    if ($control->getDraft() != null && $control->getDraft()->getText() == 'yes') { 
     $state = $videoEntry->getVideoState(); 
     if ($state instanceof Zend_Gdata_YouTube_Extension_State) { 
      print 'Upload status: ' . $state->getName() .' '. $state->getText(); 
     } else { 
      print 'Not able to retrieve the video status information' .' yet. ' . "Please try again shortly.\n"; 
     } 
    } 
} 
+2

quelle partie ne fonctionne PAS? – ajreal

+0

c'est ce que je ne suis pas capable de comprendre ... parce que je l'ai dit, je ne reçois aucune erreur ou aucune sortie. –

+0

Je ne comprends pas pourquoi les gens me donnent des votes négatifs quand ma question est aussi simple que possible! de toute façon, mon problème est résolu. apparemment, il me donnait un écran vide sur mon serveur local mais ça fonctionnait bien sur le serveur live. aussi je n'avais pas changé le défaut dans le uploadUrl à mon nom d'utilisateur. –

Répondre

1

apparemment, il me donnait un écran vide sur mon localserver mais son fonctionne bien sur le serveur en direct . aussi je n'avais pas changé le défaut dans le uploadUrl à mon nom d'utilisateur.