7.0 KiB
7.0 KiB
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 = pollGET /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-флоу (работает)
- Почта: 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.
- Гео/IP: dashboard и API геоблочат/403-ят локальный IP Влада. Всё — через HTTP-прокси (patchright
proxy=+ urllib ProxyHandler). Мёртвый прокси →ERR_TUNNEL_CONNECTION_FAILED/ERR_TIMED_OUT; итерировать пул. - Turnstile: sitekey
0x4AAAAAADkESu5VN02iaX-3. Солвер — локальный sidecarPOST http://127.0.0.1:<port>/solve {"type":"turnstile","sitekey":...,"url":"https://dashboard.nonecap.com/signup","real_page":true}бесплатно. 2captcha — только фолбэк (баланс $0 = ERROR_ZERO_BALANCE). - Verify: ссылка
https://dashboard.nonecap.com/verify?token=*** из письма Voidash →page.goto(verify_link)`. - АНТИ-LOCK (критично): verify-link сам аутентифицирует сессию. НЕ делать парольный login после verify — повторный вход с прокси → risk-lock аккаунта (
account_locked, login-пароль умирает; так потеряны первые акки). После goto сразу/keys, проверитьpage.urlне login/signup → сессия жива. - Ключ: на
/keysкликbutton:has-text("Reveal")→ regexnc_live_[A-Za-z0-9_\-]+изdocument.body.innerText. - Персистенция: сразу после 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и переключить скрипты envSIDECAR_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) — видимость артефактов для агентов. AuthX-Gateway-Key(ключ в gitignoredgateway_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/.
Питфолы
/v1/me403 missing scope ≠ lock (см. выше).- Прокси-пул
tmp/live_http_proxies.txtдеградирует быстро (3 живых из 36) — probe перед батчем (nc_proxy_probe.pyпо ЦЕЛЕВОМУ url, не ipify). - Disposable-домены: бан по домену на signup, не по email — ротация local-part не лечит, ротация ДОМЕНА лечит.
- Background-процессы старых прогонов (до фикса доменов/прокси) присылают stale-фейлы в уведомления — сверять email-домен в тексте фейла, прежде чем чинить уже починенное.
- write_file маскирует
nc_live_...-строки и «Bearer » — ключи читать regex'ом из файла в рантайме, в выводах печатать только префикс+длину.