Toute personne présente une expérience avec l'API YouTube/Google? J'essaie de me connecter à Google/Youtube en utilisant clientLogin, de récupérer un jeton AuthSub, de l'échanger contre un jeton multisession, puis de l'utiliser dans notre formulaire de téléchargement. Juste une note que nous n'allons pas avoir d'autres utilisateurs se connectant à notre site (sécurisé), c'est pour notre usage seulement (pas de multi-utilisateurs). Nous voulons juste un moyen de télécharger des vidéos sur notre compte YT via notre propre site Web sans avoir à vous connecter/télécharger sur YouTube.Le jeton AuthSub de l'API Google/YouTube est toujours renvoyé comme non valide.
Finalement, tout dépend de la première étape. Mon jeton AuthSub est toujours renvoyé comme non valide (erreur '403').
Toutes les étapes que j'ai utilisées sont ci-dessous avec le nom d'utilisateur/mot de passe changé. Quelqu'un a-t-il un aperçu de la raison pour laquelle mon AuthSub est toujours invalide? Je passe énormément de temps à essayer de faire en sorte que cela fonctionne.
ÉTAPE 1: Obtenir le jeton AuthSub de Youtube/Google
POST /youtube/accounts/ClientLogin HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Content-Length: 86
Email=MyGoogleUsername&Passwd=MyGooglePasswd&accountType=GOOGLE&service=youtube&source=Test
RÉPONSE REÇUES:
Auth = AIwbFAR99f3iACfkT-5PXCB-1tN4vlyP_1CiNZ8JOn6P -...... yv4d4zeGRemNm4il1e-M6czgfDXAR0w9fQ YouTubeUser = MyYouTubeUsername
COMMANDE CURL UTILISÉE:
/usr/bin/curl
-S
-v
--location
https://www.google.com/youtube/accounts/ClientLogin
--data
Email=MyGoogleUsername&Passwd=MyGooglePasswd&accountType=GOOGLE&service=youtube&source=Test
--header
Content-Type:application/x-www-form-urlencoded
ÉTAPE 2: Remplacement du jeton AuthSub pour un multi-usage jeton
GET /accounts/AuthSubSessionToken HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Authorization: AuthSub token="AIwbFASiRR3XDKs......p5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
réponse reçu:
403 jeton non valide AuthSub.
commande boucle utilisé:
/usr/bin/curl
-S
-v
--location
https://www.google.com/accounts/AuthSubSessionToken
--header
Content-Type:application/x-www-form-urlencoded
-H
Authorization: AuthSub token="AIwbFAQR_4xG2g.....vp3BQZW5XEMyIj_wFozHSTEQ-BQRfYuIY-1CyqLeQ"
ÉTAPE 3: Vérifier si le jeton est bon/valide
GET /accounts/AuthSubTokenInfo HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: www.google.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/x-www-form-urlencoded
Authorization: AuthSub token="AIwbFASiRR3XDKsNkaIoPaujN5RQhKs3u.....A_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
Réponse reçue:
403 non valide Jeton AuthSub.
commande curl utilisé:
/usr/bin/curl
-S
-v
--location
https://www.google.com/accounts/AuthSubTokenInfo
--header
Content-Type:application/x-www-form-urlencoded
-H
Authorization: AuthSub token="AIwbFAQR_4xG2gHoAKDsNdFqdZdwWjGeNquOLpvp3BQZW5XEMyIj_wFozHSTEQ-BQRfYuIY-1CyqLeQ"
ÉTAPE 4: Essayer d'obtenir le jeton de téléchargement en utilisant le AuthSub jeton
POST /action/GetUploadToken HTTP/1.1
User-Agent: curl/7.10.6 (i386-redhat-linux-gnu) libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: gdata.youtube.com
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Content-Type:application/atom+xml
Authorization: AuthSub token="AIwbFASiRR3XDKsNkaIoPaujN5RQhp5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
X-Gdata-Key:key="AI39si5EQyo-TZPFAnmGjxJGFKpxd_7a6hEERh_3......R82AShoQ"
Content-Length:0
GData-Version:2
Recevied Réponse:
401 jeton invalide - Invalid AuthSub tok en.
commande Curl utilisé:
/usr/bin/curl
-S
-v
--location
http://gdata.youtube.com/action/GetUploadToken
-H
Content-Type:application/atom+xml
-H
Authorization: AuthSub token="AIwbFASiRR3XDKs....sYDp5Oy_VA_9U2yV1enxJoVGSgMlZqTcjKw9mS861vlc9GWTH9D9sQ"
-H
X-Gdata-Key:key="AI39si5EQyo-TZPFAnmGjxJGF......Kpxd6dN2J1oHFQYTj_7a6hEERh_3E48R82AShoQ"
-H
Content-Length:0
-H
GData-Version:2
Intéressant. Je ne vois aucun code Perl n'importe où dans cette question. –
Oups ... Il existe un script backend écrit en Perl qui contrôle tout. Je vais retirer l'étiquette. –