# Extension Quickstart

# Loading the NopeCHA extension in a browser.

  • Pros

    No coding required.

    Fast and cheap.

    Works on all sites.

    Impossible to detect.

  • Cons

    Proxies may be needed.

    Browser required (e.g. Selenium, Puppeteer, Playwright).


# Official NopeCHA browser extensions

Chrome Web Store
https://nopecha.com/chrome
Firefox Add-on
https://nopecha.com/firefox

If you need to deploy the extension to multiple machines, you can refer to the Extension for Experts guide to pre-configure the extension settings using the manifest.json file. Please note that in most cases, you do not need to do this. While official NopeCHA browser extensions receive automatic updates, you will need to manually update the extension if you use the expert guide.


# Python example

import requests
from selenium import webdriver

NOPECHA_KEY = 'YOUR_KEY_HERE'  # Replace with your key.

options = webdriver.chrome.options.Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)

# Download the latest NopeCHA crx extension file.
# You can also supply a path to a directory with unpacked extension files.
with open('ext.crx', 'wb') as f:
    f.write(requests.get('https://nopecha.com/f/ext.crx').content)
options.add_extension('ext.crx')

# Start the driver.
driver = webdriver.Chrome(options=options)

# Set the subscription key for the extension by visiting this URL.
# You can programmatically import all extension settings using this method.
# To learn more, go to "Export Settings" in the extension popup.
driver.get(f"https://nopecha.com/setup#{NOPECHA_KEY}")

# Go to any page with a CAPTCHA and the extension will automatically solve it.
driver.get('https://nopecha.com/demo/hcaptcha')
import requests
import zipfile
import undetected_chromedriver.v2 as uc

NOPECHA_KEY = 'YOUR_KEY_HERE'  # Replace with your key.

options = uc.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--no-first-run --no-service-autorun --password-store=basic')

# Download the latest unpacked NopeCHA extension.
# Undetected chromedriver does not support loading from a crx file.
with open('chrome.zip', 'wb') as f:
    f.write(requests.get('https://nopecha.com/f/chrome.zip').content)
with zipfile.ZipFile('chrome.zip', 'r') as zip_ref:
    zip_ref.extractall('nopecha')
options.add_argument(f"--load-extension={os.getcwd()}/nopecha")

# Start the driver.
driver = uc.Chrome(options=options)

# Set the subscription key for the extension by visiting this URL.
# You can programmatically import all extension settings using this method.
# To learn more, go to "Export Settings" in the extension popup.
driver.get(f"https://nopecha.com/setup#{NOPECHA_KEY}")

# Go to any page with a CAPTCHA and the extension will automatically solve it.
driver.get('https://nopecha.com/demo/hcaptcha')