n8n est un outil d'automatisation de flux de travail open source avec prise en charge native des boucles, ce qui le rend plus flexible que Zapier pour la résolution de CAPTCHA. Vous pouvez créer un flux de travail de soumission – sondage – qui réessaye automatiquement jusqu'à ce que la résolution soit terminée.
Présentation du flux de travail
Manual Trigger / Cron
↓
HTTP Request: Submit CAPTCHA
↓
Wait: 10 seconds
↓
Loop: Poll until solved
├── HTTP Request: Get result
├── IF: status == 1? → Exit loop
└── Wait: 5 seconds → Loop again
↓
HTTP Request: Use token
Nœud 1 : Envoyer un CAPTCHA
Ajoutez un nœud Requête HTTP :
| Paramètre | Valeur |
|---|---|
| Méthode | POST |
| URL | https://ocr.captchaai.com/in.php |
| Type de contenu du corps | Form URL Encoded |
Paramètres corporels :
| Nom | Valeur |
|---|---|
key |
{{ $credentials.captchaaiApiKey }} ou codez en dur votre clé |
method |
userrecaptcha |
googlekey |
6Le-SITEKEY |
pageurl |
https://example.com |
json |
1 |
Réponse :
{
"status": 1,
"request": "71823456"
}
Nœud 2 : Attendez
Ajoutez un nœud Attendez :
| Paramètre | Valeur |
|---|---|
| Temps d'attente | 10 |
| Unité | Seconds |
Cela donne au solveur le temps de commencer le traitement avant la première interrogation.
Nœud 3 : Résultat du sondage (avec boucle)
n8n prend en charge les boucles via le nœud Loop Over Items ou en connectant la fausse sortie d'un nœud IF à un nœud précédent.
Option A : boucle IF simple
Ajoutez un nœud Requête HTTP (Sondage) :
| Paramètre | Valeur |
|---|---|
| Méthode | GET |
| URL | https://ocr.captchaai.com/res.php |
| Paramètres de requête | key, action=get, id={{ $json.request }}, json=1 |
Connectez-le à un nœud IF :
| État | Valeur |
|---|---|
| Valeur 1 | {{ $json.status }} |
| Fonctionnement | Equal |
| Valeur 2 | 1 |
- Vraie sortie → Passez à l'action suivante (utilisez le jeton)
- Fausse sortie → Attendez (5 secondes) → retour au nœud d'interrogation
Option B : nœud de code
Pour plus de contrôle, utilisez un nœud Code :
const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;
for (let i = 0; i < 24; i++) {
await new Promise(r => setTimeout(r, 5000));
const resp = await fetch(
`https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
);
const data = await resp.json();
if (data.status === 1) {
return [{ json: { token: data.request, taskId } }];
}
if (data.request !== 'CAPCHA_NOT_READY') {
throw new Error(`CaptchaAI error: ${data.request}`);
}
}
throw new Error(`Task ${taskId} timed out`);
Nœud 4 : Utiliser le jeton
Ajoutez un autre nœud HTTP Request pour soumettre le formulaire avec le jeton résolu :
| Paramètre | Valeur |
|---|---|
| Méthode | POST |
| URL | https://target-site.com/submit |
| Type de contenu du corps | Form URL Encoded |
Les paramètres du corps incluent les données de votre formulaire plus :
| Nom | Valeur |
|---|---|
g-recaptcha-response |
{{ $json.token }} |
Stocker la clé API en toute sécurité
Utilisez le système Credentials de n8n :
- Allez dans Credentials → Add Credential → Header Auth
- Nom :
CaptchaAI API Key - Conservez la clé en toute sécurité
Ou utilisez des variables d'environnement :
# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"
Référence dans les nœuds : {{ $env.CAPTCHAAI_API_KEY }}
Flux de travail CAPTCHA d’image
Pour les CAPTCHA d'image, ajustez le nœud Soumettre :
| Nom | Valeur |
|---|---|
method |
base64 |
body |
Image codée en base64 (à partir d'un nœud ou d'une URL précédente) |
Pour convertir une URL d'image en base64 dans n8n, ajoutez un nœud Code avant la soumission :
const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');
return [{ json: { imageBase64: base64 } }];
Flux de travail de vérification du solde
Créez un workflow distinct qui s'exécute selon un planning :
Cron (daily at 9 AM)
↓
HTTP Request: GET res.php?action=getbalance
↓
IF: balance < 5
↓
Slack / Email: "CaptchaAI balance low: $X.XX"
n8n vs Zapier pour la résolution de CAPTCHA
| Caractéristique | n8n | Zapier |
|---|---|---|
| Prise en charge de Loop/retry | Natif (boucles IF, nœud de boucle) | Limité (chemins uniquement) |
| Option auto-hébergée | Oui (gratuit) | Non (cloud uniquement) |
| Nœuds de code | JavaScript complet | Limité |
| Coût | Cloud gratuit (auto-hébergé) ou payant | Payé (par tâche) |
| Facilité de configuration | Modéré | Facile |
n8n est meilleur pour les flux de travail CAPTCHA en raison de sa prise en charge des boucles et de ses nœuds de code.
Dépannage
| Problème | Parce que | Corriger |
|---|---|---|
| La boucle de sondage s'exécute indéfiniment | Aucune limite d'itération maximale | Ajouter une variable compteur, pause après 24 itérations |
CAPCHA_NOT_READY sans escale |
Temps d'attente trop court avant le premier sondage | Augmentez l'attente initiale à 15-20 secondes |
| Jeton non disponible dans le nœud suivant | Mauvais chemin d'expression | Vérifiez que {{ $json.token }} correspond à la sortie |
| Identifiants introuvables | Variable d'environnement non définie | Redémarrez n8n après avoir défini les variables d'environnement |
FAQ
Puis-je traiter plusieurs CAPTCHA dans un seul flux de travail ?
Oui. Utilisez le nœud Split In Batches pour traiter plusieurs éléments, chacun avec son propre flux de soumission, de sondage et d'utilisation.
N8n prend-il en charge Turnstile ?
Oui. Remplacez method par turnstile et utilisez sitekey au lieu de googlekey.
Intégrez la résolution CAPTCHA dans vos flux de travail n8n
Obtenez votre clé API surcaptchaai.com.
Guides associés
- Zapier + CaptchaAI : automatisation sans code
- Démarrage rapide de l'API CaptchaAI
- URL de rappel CaptchaAI / Guide Webhook