2010-09-09 12 views
2

J'utilise Zend_Gdata_YouTube à l'interface avec l'API YouTube pour télécharger des vidéos sur mon site. Les vidéos sont téléchargées comme "privées":API YouTube (PHP) - Récupération d'une vidéo privée sous mon compte

$myVideoEntry->setVideoPrivate(); 

... et ont des étiquettes uniques et des étiquettes de développeur. Un administrateur peut ensuite entrer dans un CMS personnalisé et approuver les entrées soumises par l'utilisateur privé et les rendre publiques - au moins, c'est ce que je veux faire.

Dans le CMS, je me connecte à l'API en tant qu'utilisateur authentifié (Zend_Gdata_AuthSub). Je peux tirer la vidéo de l'utilisateur authentifié comme ceci:

$videoFeed = $yt->getuserUploads('default'); 

Cela va tirer toutes les vidéos, à la fois public et privé. Mais lorsque je tente de rechercher une vidéo spécifique avec un terme de recherche:

$query = $yt->newVideoQuery(); 
$query->setSafeSearch('none'); 
$query->setVideoQuery('puppies'); 

$videoFeed = $yt->getVideoFeed($query->getQueryUrl(2)); 

Ou par tag:

$query = $yt->newVideoQuery(); 
$query->setOrderBy('viewCount'); 
$query->setRacy('include'); 
$query->setCategory('People/sometag'); 

// obtain a feed with videos matching the provided tag 
$videoFeed = $yt->getVideoFeed($query); 

Ou par tag développeur:

$devTagUrl = 'http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com' . 
    '%2Fschemas%2F2007%2Fdevelopertags.cat%7D' . $some_dev_tag; 
$videoFeed = $yt->getVideoFeed($devTagUrl); 

Les vidéos privées retournera un résultat vide. Cependant, si je rends la vidéo publique, alors je peux l'extraire de l'une des trois méthodes ci-dessus - qui sont toutes exécutées sous une connexion authentifiée.

Comment puis-je tirer une vidéo privée basée sur l'étiquette ou l'étiquette développeur? Est-ce que je manque quelque chose? Merci beaucoup!!

Répondre

0

Malheureusement, cela semble être une limitation de l'API. Mon travail autour de la solution était de tirer toutes les vidéos de l'utilisateur avec:

$videoFeed = $yt->getuserUploads('default'); 

Qui tire les vidéos publiques et privées. Ensuite, je compare mes tags de développement avec chaque entrée et fais correspondre les vidéos en PHP.