Un site que vous automatisez vient de passer à GeeTest v4 et votre intégration prévue pour la v3 ne répond plus. Le point le plus important d'abord : CaptchaAI résout GeeTest v3, avec un taux de réussite élevé. Il ne résout pas GeeTest v4. Ce guide explique ce qui change entre la v3 et la v4, comment reconnaître chaque version dans une page, et où se situe CaptchaAI.
Où en est CaptchaAI avec GeeTest v4
Soyons direct sur le statut : CaptchaAI résout GeeTest v3. Il ne résout pas GeeTest v4. Voici la règle de décision à retenir avant d'écrire une seule ligne :
- GeeTest v3 : pleinement prise en charge, résolue via l'API avec un taux de réussite élevé.
- GeeTest v4 : CaptchaAI ne la résout pas. Si la page charge
gcaptcha4.geetest.comougt4.js, elle tourne en v4 et CaptchaAI ne peut pas la résoudre.
GeeTest v3 vs v4 : les différences qui comptent
La v4 n'est pas une simple mise à jour cosmétique. L'initialisation, la validation et l'éventail des défis changent, ce qui casse une intégration écrite pour la v3.
| Caractéristique | GeeTest v3 | GeeTest v4 |
|---|---|---|
| Initialisation | gt + challenge renvoyés par le serveur |
captcha_id uniquement |
| Paramètre de défi | Fourni par l'appel API | Généré côté client |
| Types de défis | Glissement, clic | Glissement, clic, sélection d'icônes, raisonnement spatial |
| Validation | Le serveur renvoie challenge |
Repose sur lot_number + pass_token |
| Endpoint de l'API | api.geetest.com |
gcaptcha4.geetest.com |
| Difficulté | Fixe | Notation adaptative du risque |
Les types de défis de la v4
La v4 élargit la palette de défis, ce qui explique pourquoi une logique écrite pour la v3 ne suffit plus. Comprendre cette palette avant de coder vous évite d'adapter votre détection après coup.
Puzzle coulissant
Le défi classique du glissement : l'utilisateur fait coulisser une pièce jusqu'à sa place. Déjà présent en v3.
Sélection par clic
L'utilisateur clique sur des objets précis (« cliquez sur tous les visages »). Repose sur la reconnaissance d'icônes.
Raisonnement spatial
Nouveau en v4 : l'utilisateur agence des formes selon un motif spatial. Plus exigeant que tout ce que proposait la v3.
Correspondance d'icônes
L'utilisateur reproduit une séquence d'icônes affichée à l'écran. Difficile à automatiser à la main.
Quel que soit celui de ces défis qu'affiche une page, il s'agit de GeeTest v4, que CaptchaAI ne peut pas résoudre. CaptchaAI résout GeeTest v3.
Reconnaître la v4 dans une page
Avant toute chose, identifiez la version réellement servie. Trois signaux distinguent la v4 de la v3 dans le code de la page :
- un paramètre
captcha_idseul, sans le couplegt+challengede la v3 ; - un script
gcaptcha4ou un fichiergt4.jschargé dans la page ; - des appels vers
gcaptcha4.geetest.complutôt queapi.geetest.com.
Le rendu étant piloté par JavaScript, un navigateur headless comme Selenium fiabilise l'extraction.
# extract_geetest_v4.py
import re
from selenium import webdriver
def extract_geetest_v4_params(url):
"""Extract GeeTest v4 captcha_id from a page."""
driver = webdriver.Chrome()
driver.get(url)
page_source = driver.page_source
# GeeTest v4 uses captcha_id instead of gt
match = re.search(r'captcha_id["\']?\s*[:=]\s*["\']([a-f0-9]+)', page_source)
captcha_id = match.group(1) if match else None
# Check for v4-specific script
is_v4 = "gcaptcha4" in page_source or "gt4.js" in page_source
driver.quit()
return {
"captcha_id": captcha_id,
"is_v4": is_v4,
"pageurl": url,
}
# Usage
params = extract_geetest_v4_params("https://example.com/login")
print(f"Captcha ID: {params['captcha_id']}")
print(f"Is v4: {params['is_v4']}")
Où intervient CaptchaAI
CaptchaAI résout GeeTest v3. Il ne résout pas GeeTest v4. Sa méthode geetest prend les valeurs de la v3 (gt, un nouveau challenge et pageurl) et renvoie challenge, validate et seccode. Elle n'a aucun paramètre v4 : n'envoyez donc pas le captcha_id d'une page v4 comme gt. Lancez d'abord la vérification ci-dessus : si la page charge gcaptcha4.geetest.com ou gt4.js, elle tourne en v4 et CaptchaAI ne peut pas la résoudre. Si la page tourne encore en v3, Comment résoudre GeeTest v3 à l'aide de l'API détaille le flux complet.
Ce qui change dans la validation v4
Sur une page en v3, une réussite donne trois valeurs, geetest_challenge, geetest_validate et geetest_seccode, que le backend du site vérifie auprès de GeeTest. Sur une page en v4, captchaObj.getValidate() renvoie à la place quatre valeurs : lot_number, captcha_output, pass_token et gen_time. Le backend du site les envoie à l'endpoint /validate de la v4 sur gcaptcha4.geetest.com, avec son captcha_id et un sign_token signé avec sa clé privée (documentation GeeTest v4 : API web et API serveur). Un code qui lit ou remplit les trois champs de la v3 n'a rien à exploiter sur une page en v4.
Exemple : un portail francophone qui migre vers la v4
Imaginez une équipe QA basée à Lyon qui surveille en continu un portail e-commerce hébergé sur OVHcloud. Le site protégeait sa page de connexion avec GeeTest v3, puis bascule vers la v4 sans préavis. Les tests automatisés commencent à échouer : le paramètre challenge a disparu, remplacé par un captcha_id seul. La bonne réaction n'est pas de bricoler l'ancien code, mais de détecter la version servie (script gcaptcha4) et de router les cibles encore en v3 vers CaptchaAI, qui résout GeeTest v3. CaptchaAI ne résout pas les pages passées en v4. Côté données, restez sur le principe RGPD de minimisation : ne collectez que ce dont vos tests ont réellement besoin.
Dépannage
Voici les erreurs les plus probables lorsqu'un site passe de la v3 à la v4.
| Problème | Cause | Correctif |
|---|---|---|
La recherche de gt / challenge ne trouve rien sur une page qui fonctionnait |
Le site est passé à GeeTest v4, qui n'a pas de challenge émis par le serveur |
Cherchez gcaptcha4.geetest.com ou gt4.js dans la page ; CaptchaAI résout uniquement GeeTest v3 |
ERROR_WRONG_CAPTCHA_ID renvoyé par CaptchaAI |
gt ou challenge invalide, par exemple un captcha_id de la v4 envoyé comme gt |
Envoyez le gt v3 de la page et un nouveau challenge à chaque requête |
captcha_id introuvable |
Contenu rendu par JavaScript | Extrayez-le de la page rendue avec Selenium |
FAQ
Comment détecter si un site utilise GeeTest v3 ou v4 ?
Cherchez gcaptcha4.geetest.com ou gt4.js dans la source de la page : c'est la v4. Si vous trouvez api.geetest.com avec un paramètre challenge, il s'agit de la v3.
CaptchaAI peut-il résoudre GeeTest v4 ?
Non. CaptchaAI résout GeeTest v3 avec un taux de réussite élevé. Il ne résout pas GeeTest v4, et il n'y a donc pas de taux de réussite v4 à donner.
Faut-il migrer mon intégration de la v3 vers la v4 ?
Non : la méthode geetest de CaptchaAI n'a aucun paramètre v4. Tant qu'un site sert la v3, gardez votre intégration. Sur une page en v4, il n'y a pas de challenge émis par le serveur, et une réussite renvoie quatre valeurs au lieu de trois : une intégration v3 ne peut donc pas simplement être pointée vers elle. Ajoutez une détection de version pour repérer les cibles passées en v4, que CaptchaAI ne résout pas.
La v4 remplace-t-elle définitivement la v3 ?
Pas dans l'immédiat. De nombreux sites restent en v3, et les deux versions coexistent. Une détection de version dans votre code vous évite d'avoir à choisir à la main.
Guides connexes
Résolvez GeeTest v3 — démarrez avec CaptchaAI. CaptchaAI ne résout pas GeeTest v4.