Files
autoreg-skills-max/skills/ai-provider-autoreg/references/nonecap-hcaptcha-solver-autoreg.md

7.0 KiB
Raw Permalink Blame History

NoneCap (nonecap.com) — hCaptcha solver API авторег + gateway

Live-подтверждено 2026-10-07: demo-solve через добытый ключ → HTTP 200 {"status":"solved","token":"P1_...","user_agent":"Mozilla/5.0 (iPhone...)"}.

Что за сервис

  • hCaptcha solver API. Signup = 1300 free credits, без карты.
  • Ключи nc_live_<32+ chars>. Токен решения P1_* инжектится в поле h-captcha-response цели вместе с user_agent из ответа solve (UA обязан совпадать с браузером, который сабмитит).
  • Dashboard: https://dashboard.nonecap.com (Next.js Server Actions), API: https://api.nonecap.com/v1.

Реверс API (из JS-рендера nonecap.com/api-reference/ через patchright+прокси)

Raw curl не годится — docs JS-rendered (HTTP 200 size:0, sitemap 404). Рендерить браузером через прокси.

  • POST /v1/solves?wait=N — body {"type":"hcaptcha","sitekey":"...","url":"..."} → {id, status, token, user_agent}; 202 = poll GET /v1/solves/{id}.
  • GET /v1/solves?limit=N — история (200 {"object":"list","data":[...]}).
  • DELETE /v1/solves/{id}, POST /v1/feedback (report rejected solve).
  • GET /v1/me — account info, НО требует отдельный scope ключа.
  • Auth: Authorization: Bearer nc_live_....

Ключевой нюанс scopes: solve-ключ отдаёт GET /v1/me → 403 {"error":"missing 'account' scope"}. Это НЕ lock и НЕ мёртвый ключ — живость проверять демо-solve (sitekey 10000000-ffff-ffff-ffff-000000000001, url https://demo.hcaptcha.com/) или GET /v1/solves. Отличать от реального lock: account_locked приходит в теле ошибки solve/логина.

Signup-флоу (работает)

  1. Почта: Voidash API (POST https://api.voidash.com/api/v1/inboxes {"domain":X} → session_key Bearer; чтение GET /api/v1/messages, полный текст GET /api/v1/messages/{id}).
    • voidash.bond ЗАБАНЕН как disposable («Please sign up with a permanent email address»).
    • govno.eu.cc / musor.eu.cc / pomoi.eu.cc проходят signup-валидацию. Проверять новые домены probe-сабмитом без валидного turnstile — текст ошибки выдаст disposable-бан.
    • t-online IMAP-пул не годится: verify-письмо не приходит (0 писем в 5 папках за 150с). Gmail — canonicalization.
  2. Гео/IP: dashboard и API геоблочат/403-ят локальный IP Влада. Всё — через HTTP-прокси (patchright proxy= + urllib ProxyHandler). Мёртвый прокси → ERR_TUNNEL_CONNECTION_FAILED / ERR_TIMED_OUT; итерировать пул.
  3. Turnstile: sitekey 0x4AAAAAADkESu5VN02iaX-3. Солвер — локальный sidecar POST http://127.0.0.1:<port>/solve {"type":"turnstile","sitekey":...,"url":"https://dashboard.nonecap.com/signup","real_page":true} бесплатно. 2captcha — только фолбэк (баланс $0 = ERROR_ZERO_BALANCE).
  4. Verify: ссылка https://dashboard.nonecap.com/verify?token=*** из письма Voidash → page.goto(verify_link)`.
  5. АНТИ-LOCK (критично): verify-link сам аутентифицирует сессию. НЕ делать парольный login после verify — повторный вход с прокси → risk-lock аккаунта (account_locked, login-пароль умирает; так потеряны первые акки). После goto сразу /keys, проверить page.url не login/signup → сессия жива.
  6. Ключ: на /keys клик button:has-text("Reveal") → regex nc_live_[A-Za-z0-9_\-]+ из document.body.innerText.
  7. Персистенция: сразу после verify писать строку email:pass:PENDING в nonecap_accounts.txt; после extraction — перезаписывать PENDING ключом (иначе фейл на шаге 6 теряет живой акк; password дублировать в nonecap_state.json).

Recovery ключа (акк верифицирован, ключ не добыт)

  • tmp/nc_recover_key.py <email> <pass> <proxy1,proxy2,...> — итерация проксей, логин, /keys, Reveal.
  • Login-страница НЕ имеет видимого Turnstile-виджета — solve на /login таймаутит даже с pre_actions (fill email/password). Решение: солвить токен на /signup (тот же host+sitekey, виджет виден) — сервер принимает signup-токен и на login.
  • Если sidecar занят чужим проектом (solve timed out при живом /health) — поднять выделенный инстанс PORT=8878 и переключить скрипты env SIDECAR_URL.

Репа (фулл-фарм-стек для агента)

ArthurMonteiro08586/nonecap-autoreg-gateway (public, Contents API push):

  • nonecap_register.py — авторег (eu.cc-домены, прокси-ротация, анти-lock, PENDING, recovery).
  • nonecap_gateway.py :9997 — stdlib http.server: ротация ключей+proxy-fallback, POST /v1/solve (+{"stream":true} SSE), /v1/keys, /health, /dashboard, POST /pool/reload, GET /files?path=... (whitelist Desktop/tmp/SESSION-BASE, traversal-guard, ≤2MB) — видимость артефактов для агентов. Auth X-Gateway-Key (ключ в gitignored gateway_key.txt).
  • agent_client.py + tools.json — OpenAI function-calling схема: hcaptcha_solve/gateway_health/gateway_pool/fs_list/fs_read/pool_reload → HTTP. Смоук: health + fs_list + demo-solve.
  • Локальный дев-копии: Desktop/_PROJECTS/nonecap_autoreg/.

Питфолы

  1. /v1/me 403 missing scope ≠ lock (см. выше).
  2. Прокси-пул tmp/live_http_proxies.txt деградирует быстро (3 живых из 36) — probe перед батчем (nc_proxy_probe.py по ЦЕЛЕВОМУ url, не ipify).
  3. Disposable-домены: бан по домену на signup, не по email — ротация local-part не лечит, ротация ДОМЕНА лечит.
  4. Background-процессы старых прогонов (до фикса доменов/прокси) присылают stale-фейлы в уведомления — сверять email-домен в тексте фейла, прежде чем чинить уже починенное.
  5. write_file маскирует nc_live_...-строки и «Bearer » — ключи читать regex'ом из файла в рантайме, в выводах печатать только префикс+длину.