[ZEND] Upload vidéo API youtube

Eléphanteau du PHP | 35 Messages

18 oct. 2010, 21:26

Bonsoir à tous,

je suis en train de créer un site web comportant un espace d'upload de vidéos.
J'ai donc besoin d'utiliser l'API youtube. Seulement, je suis dessus depuis longtemps et j'ai toujours la même erreur.

J'ai feuilleté partout sur Internet mais pas moyen d'obtenir une réponse. Je paye donc le champagne à celui (ou celle) qui pourra m'aider ;)

J'ai créer un compte Youtube puis j'ai récupérer ma clé développeur, seulement rien y fais.
J'ai testé avec des valeurs différentes pour applicationId et ClientId, et les informations sont exactes (clé développeur, username et pass youtube).
$authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin';
$developerKey = 'MA CLE DEVELOPPEUR'; // Ma clé développeur
$applicationId = 'test'; // Identifiant de l'application
$clientId = 'test'; // Identifiant Client
$username = "Mon username youtube"; // Login de mon compte YouTube
$password = "Mon pass youtube"// Mot de passe de mon compte YouTube

/* A priori, $httpClient est correct */
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
     $username,$password,'youtube',null,'test',null,null,$authenticationURL
);

/* J'ai aussi essayer $yt = new Zend_Gdata_YouTube($httpClient); mais ça ne marche pas non plus */
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$videoEntry = new Zend_Gdata_YouTube_VideoEntry();
$videoEntry->setVideoTitle('test');
$videoEntry->setVideoDescription('Description de ma video');
$videoEntry->setVideoCategory('Sports');
$videoEntry->SetVideoTags('test1, test2');
$videoEntry->SetVideoDeveloperTags(array('mydevtag','anotherdevtag'));

/* C'est à partir de là que sa plante je pense */
// Récupération du token
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($videoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];
$nextUrl = 'MonUrlNext';

/* $tokenValue = "AIwbFAR3B7V-lzn5DmyY8UtbluV17kt-dlDIzxemPDlGZQ78ZqfdUIVbSZUIjzCPxVb5r_bgnvNgVWnPlKXkm8PUAgK7SEMEOtdfNOGMq4AIktwpv9bDP3M9aYNaFs1cj5FxBsS1jGMfIpfrvgoVxcO2LHoaK9dxV2Hm92cHoyG-vcInwwlPIpawjAMHYju-zGrgXMk_YTzX5oxepvq0Ljv6ceOtHl93nfpeDlRgmiyXHC022i4O9hqZbWcYboH--rcf2lxeVC50ZeY0P0hekPOl5X0iOs5qIzZS7CQPwFxkuHPUms106IXUdl2dtPhkyo_3XBkWhdIUeo5VDCJ-TVYR0Q7Rde5bWt4D8E0687Hys5JU5Ra1vpA" */

/* $postUrl = "http://uploads.gdata.youtube.com/action/FormDataUpload/AIwbFAS6O2RoaQbxvnYer6dVptTmAtrcyWXJQakhtDt74b_Bk9-KwM9dkH8M2YzPAfzkEA6p3iNKky4QabTNx0VZv84YToeBAg" */

$form = '<form action="'. $postUrl .'?nexturl='. $nextUrl .
           '" method="post" enctype="multipart/form-data">'.
            '<input name="file" type="file"/>'.
            '<input name="token" type="hidden" value="'. $tokenValue .'"/>'.
            '<input value="Upload Video File" type="submit" />'.
            '</form>';

echo $form;
A chaque fois, youtube me renvoie sur la page MonUrlNext?status=503&error=FAILED.

Sur la doc google, il est dit que le code 503 veut dire que youtube n'est pas disponible pour l'instant, seulement cela fait 15 jours que j'essaye.

Quelqu'un voit-il une solution ?

Merci beaucoup à tous.
Bonne soirée
Modifié en dernier par Pepsi33 le 18 oct. 2010, 21:37, modifié 1 fois.

Eléphanteau du PHP | 35 Messages

18 oct. 2010, 21:36

Bon, je viens de tester en direct upload (sans formulaire d'upload), et ça marche (c'est déjà une grande étape pour moi ^^).

Reste donc à savoir pourquoi le code plus haut ne marche pas :(

Merki beaucoup

Mammouth du PHP | 19672 Messages

19 oct. 2010, 07:04

J'ignore si ça peut venir de là, mais il manque un « ; » ici :
<?php
//....
$password = "Mon pass youtube"// Mot de passe de mon compte YouTube
//----------------------------^
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 35 Messages

20 oct. 2010, 19:55

En effet, il manque un point virgule, mais c'est juste à cause du "copier-coller" ^^, donc ce n'est pas ça, mais merci quand même.

Quelqu'un a -t-il une idée d'où peut venir le problème ?

Merci

Mammouth du PHP | 19672 Messages

20 oct. 2010, 20:26

Peut-être une autre piste : $videoEntry->SetVideoTags() attend un seul paramètre de type « mixed » donc chaine ou tableau, or tu en envoies deux, ça peut peut-être le perturber pour la suite ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 35 Messages

20 oct. 2010, 23:44

Merci Cyrano mais j'ai essayé avec un seul tag, et toujours la même erreur :evil:

Merci quand même.

Pour qui le champagne ? :D

Cheeeze
Invité n'ayant pas de compte PHPfrance

22 févr. 2012, 13:43

Je me demande si dans l'authentification :

Code : Tout sélectionner

$authenticationURL = 'https://www.google.com/youtube/accounts/ClientLogin'; $developerKey = 'MA CLE DEVELOPPEUR'; // Ma clé développeur $applicationId = 'test'; // Identifiant de l'application $clientId = 'test'; // Identifiant Client $username = "Mon username youtube"; // Login de mon compte YouTube $password = "Mon pass youtube"// Mot de passe de mon compte YouTube

le $username il faudrait pas indiquer le mail et non le nom d'utilisateur.
A tester...

Dis nous quoi.