Datadome Sound Captcha avatar
Datadome Sound Captcha
Deprecated
View all Actors
This Actor is deprecated

This Actor is unavailable because the developer has decided to deprecate it. Would you like to try a similar Actor instead?

See alternative Actors
Datadome Sound Captcha

Datadome Sound Captcha

microworlds/datadome-sound-captcha

Solve Datadome sound captchas using AI by providing the audio file URL

Datadome Sound Captcha Solver

Solve Datadome captchas using AI by providing the audio file URL.

How it works

Assuming you hit a page with Datadome slider captcha, here's how to solve it:

  • Extract the audio captcha file URL (e.g., https://dd.prod.captcha-delivery.com/audio/2023-05-19/en/9a16b0aa574adc63ff07847678f320be.wav) from a page with Datadome slider captcha
  • Send request to this API with the extracted audio URL
  • Type in the 6-digit numbers returned by the API into the audio captcha number fields
  • Celebrate victory!!!

Note

If the captcha is not solved on first attempt, you can easily click the reload button (#captcha__reload__button) on the slider to re-generate a new audio URL and make the request again.

Example with puppeteer (similar approach for Playwright)

1(async () => {
2    // Imports
3    import { ApifyClient } from 'apify-client';
4
5    // Assuming you hit a page with Datadome Slider Captcha e.g., when visiting https://www.super.com/travel/
6
7    ...
8    const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
9    console.log(`Solving Captcha...`)
10    
11    // Get Datadome captcha iframe
12    await page.waitForSelector(`iframe`)
13    const iframe = await page.frames().find((frame) => {
14        return frame.url().includes(`https://geo.captcha-delivery.com/captcha/?`)
15    })
16      
17    // Sleep for 3 seconds or any desired time to allow iframe to load its contents
18    await sleep(3000)
19
20    // Extract audio URL from Datadome iframe
21    const audio_url = await iframe.evaluate(() => {
22        return document.querySelector(`audio[src*="https://dd.prod.captcha-delivery.com/audio"]`)?.getAttribute(`src`)
23    })
24
25    // Make API request
26    let numbers;
27
28    // Initialize the ApifyClient with API token
29    const client = new ApifyClient({
30        token: '<YOUR_API_TOKEN>',
31    });
32
33    // Prepare actor input
34    const input = {
35        "audio_url": "https://dd.prod.captcha-delivery.com/audio/2023-05-19/en/3a1e6a23a02face80c0f26578049ced9.wav",
36        "proxyConfig": {
37            "useApifyProxy": false
38        }
39    };
40
41    try {
42        // Run the actor and wait for it to finish
43        const run = await client.actor("microworlds/datadome-sound-captcha").call(input);
44
45        // Fetch and print actor results from the run's dataset (if any)
46        console.log('Results from dataset');
47        const { items } = await client.dataset(run.defaultDatasetId).listItems();
48        items.forEach((item) => {
49            console.dir(item); // e.g  ['3', '3', '6', '4', '3', '2']
50            numbers = item
51        });
52    } catch (error) {
53        console.error(error);
54    }
55
56    // Click the speaker icon on the captcha to toggle the audio section
57    await iframe.click(`#captcha__audio__button`)
58    sleep(500)
59
60    // Type the numbers (6-digits) into the audio captcha input fields
61    for (let [index, value] of numbers.entries()) {
62        console.log(`Entering the value - ${value}`)
63        await iframe.type(`#captcha__audio input.audio-captcha-inputs[data-index="${index}"]`, `${value}`, {
64            delay: 500
65        })
66    }
67
68    // Tab yourself three times on the back and watch Datadome give you passage 馃榿
69
70    // However, if that fails, you can generate another audio url by clicking on the retry icon like so and repeat the process:
71    await iframe.click(`#captcha__reload__button`)
72
73    ...
74})();
Developer
Maintained by Community