How to Use DeathByCaptcha with Puppeteer for Browser Automation
Puppeteer is the leading browser automation library for Node.js, commonly used for web scraping, testing, and monitoring. When automated Puppeteer scripts hit CAPTCHA walls, integrating a puppeteer captcha solver keeps your workflows running.
This guide shows how to connect Puppeteer with DeathByCaptcha using Node.js.
Prerequisites
- Node.js 16+
- A DeathByCaptcha account (free trial)
- Puppeteer installed (
npm install puppeteer)
Step 1: Install the DBC Node.js Client
npm install deathbycaptcha
Step 2: Connect to DBC
const DBC = require('deathbycaptcha');
const client = new DBC.SocketClient('username', 'password');
Step 3: Detect and Solve CAPTCHAs
const puppeteer = require('puppeteer');
async function solveCaptcha(page) {
const screenshot = await page.screenshot({ encoding: 'base64' });
const result = await client.decode(
Buffer.from(screenshot, 'base64'), 60
);
if (result.text) {
await page.type('#captcha-input', result.text);
await page.click('#submit-button');
}
}
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const captchaPresent = await page.$('#captcha-image');
if (captchaPresent) await solveCaptcha(page);
await browser.close();
})();
Step 4: Handling reCAPTCHA with Puppeteer
For reCAPTCHA v2, capture the site key and page URL, then use DBC's endpoint:
const result = await client.decode({
googlekey: 'SITE_KEY',
pageurl: 'https://example.com'
}, 60, 4);
Inject the token back into the page:
await page.evaluate((token) => {
document.getElementById('g-recaptcha-response').innerHTML = token;
}, result.text);
Best Practices
- Use DBC's callback mode for high-volume workflows.
- Implement exponential backoff for captcha retries.
- Rotate user agents and viewport sizes to reduce detection.
- Monitor your DBC balance programmatically.

Portuguese
English
Spanish
Russian
Chinese
French
Hindi
Arabic
Bengali
Indonesian
com, 