Périmètre sûr : Ce guide s'applique exclusivement à vos propres applications et environnements (QA, préproduction, production) ou à des systèmes pour lesquels vous avez une autorisation écrite. Il ne couvre ni l'automatisation de sites tiers, ni l'évasion d'anti-bot.
L'extension CaptchaAI donne ses meilleurs résultats sur les pages à CAPTCHA image quand vous la traitez comme un workflow de navigateur reproductible, pas comme un bouton à activer. Quatre éléments décident de la stabilité :
- l'état du compte ;
- le profil de navigateur ;
- le gestionnaire de CAPTCHA sélectionné ;
- le comportement de la page une fois le token appliqué.
L'extension CaptchaAI comme workflow de navigateur reproductible
Sur une page à CAPTCHA image, l'extension doit charger le bon profil, retrouver la session authentifiée et résoudre sans intervention manuelle. Fixez trois invariants :
- un répertoire de profil dédié (
--user-data-dir) ; - l'extension chargée explicitement (
--load-extension) ; - une seule instance de navigateur par worker.
Un profil partagé entre deux workers reste la cause la plus fréquente de résolutions qui « disparaissent » sans erreur claire.
Préparer un environnement de QA isolé
Avant de coder, vérifiez que votre QA est coupée de la production, que la clé CaptchaAI vit dans un secret de CI et que vos endpoints internes acceptent le trafic de test. Côté RGPD, minimisez les données personnelles dans vos journaux : ne capturez que les paramètres utiles au solveur.
Le workflow de résolution en cinq étapes
Le même enchaînement s'applique à un CAPTCHA image comme à un token :
- Capturez les seuls paramètres attendus (
sitekey, URL de la page, action éventuelle). - Envoyez la tâche à CaptchaAI et récupérez son identifiant.
- Interrogez le résultat jusqu'au token, sous un plafond de temps par tâche.
- Appliquez le token dans la session qui a déclenché le défi.
- Tracez la latence, les retries et l'acceptation côté backend.
Exemple : une fonction d'appel réutilisable
Enfermez l'appel dans une fonction réutilisable : elle prend la sitekey et l'URL de votre page, renvoie un token, puis trace la durée et le code retour. L'exemple crée une tâche Turnstile ; le contrat reste identique pour un CAPTCHA image.
import fetch from 'node-fetch';
const API_KEY = process.env.CAPTCHAAI_KEY;
export async function createTurnstileTask(siteKey, pageUrl) {
const res = await fetch('https://api.captchaai.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: API_KEY,
task: {
type: 'TurnstileTaskProxyless',
websiteURL: pageUrl,
websiteKey: siteKey,
},
}),
});
const data = await res.json();
return data.taskId;
}
Vérifier le token côté backend avant toute action
Le token renvoyé doit être validé par votre backend avant toute opération métier : aucune requête ne doit passer sur la foi d'un token périmé ou forgé. Appliquez-le dans la même session que le défi — même contexte de navigateur, même client HTTP, même cookie jar.
Instrumenter et journaliser chaque résolution
Instrumentez les appels CAPTCHA pour obtenir des signaux exploitables :
- la durée d'obtention du token ;
- le code retour HTTP ;
- l'identifiant de tâche ;
- la taille de la file d'attente.
Corrélez ces identifiants à votre traçage distribué (OpenTelemetry) pour rejouer un scénario complet. Hébergez workers et logs dans la même région européenne (eu-west-3 à Paris, OVHcloud ou Scaleway) pour simplifier vos obligations RGPD.
Dépannage
| Problème | Cause probable | Correctif |
|---|---|---|
| Token refusé après résolution | Appliqué dans une autre session que le défi | Résoudre et soumettre dans le même contexte de navigateur. |
| Résolutions qui « disparaissent » | Deux workers partagent un profil | Un --user-data-dir distinct par worker. |
| Interrogation qui n'aboutit jamais | Aucun plafond de temps ni retry | Plafond par tâche et backoff exponentiel borné. |
| Trop de données personnelles dans les logs | Paramètres superflus capturés | Journaliser les seuls champs utiles au solveur (RGPD). |
Liste de contrôle avant la production
- Périmètre limité à vos propres applications ou à des sources autorisées.
- Clé CaptchaAI dans un secret de CI ou un coffre, jamais dans le code source.
- Un
--user-data-dirdistinct par worker ; aucun profil partagé. - Durées d'appel et codes retour tracés à chaque exécution.
- Retry idempotent pour les erreurs transitoires ; tests rejouables en CI.
Questions fréquentes
L'extension CaptchaAI fonctionne-t-elle sans interface graphique ?
Une extension a besoin d'un contexte de navigateur réel : lancez-la avec un profil persistant plutôt qu'en mode headless. Sur un serveur sans écran, passez par un affichage virtuel (Xvfb) ; pour un appel API simple, préférez l'appel HTTP direct.
Comment garder les profils de navigateur isolés entre deux workers ?
Attribuez à chaque worker son propre --user-data-dir et ne partagez jamais un profil entre deux processus simultanés, pour éviter les collisions de cookies et les sessions écrasées.
Quelle formule CaptchaAI choisir pour un pool de workers ?
La facturation repose sur les threads, pas sur le nombre de résolutions : un thread correspond à un CAPTCHA en cours. La formule BASIC ($15/mois, 5 threads) couvre un petit pool de QA ; montez en gamme quand le parallélisme dépasse les threads inclus. Toutes les formules incluent des résolutions illimitées par thread.
Guides connexes
- démarrage rapide CaptchaAI
- tests QA en environnement autorisé
- tester l'endpoint API sur vos formulaires
- intégration des CAPTCHA en CI
- résoudre reCAPTCHA v2 via l'API
Passez d'un clic ponctuel à un workflow CAPTCHA mesurable et reproductible. – Obtenez votre clé CaptchaAI.