--- name: chatgpt-autoreg description: Mass auto-registration of ChatGPT accounts using aBaiAutoplus toolkit — protocol executor, IMAP pool, captcha auto-solver. Covers server lifecycle, task submission, monitoring, and pitfall recovery. triggers: - "авторег gpt" - "регистрация chatgpt аккаунтов" - "массовый авторег" - "зарегать аккаунты" - user asks about aBaiAutoplus or oai-register --- # ChatGPT Auto-Registration (aBaiAutoplus) ## Quick Start ```bash # 1. Start server cd "C:/Users/User/Desktop/GPT-AUTOREG/aBaiAutoplus" python -u main.py # Server listens on port 8000. Web UI at http://localhost:8000 # No venv activation needed — uses system Python 3.11 # 2. Verify health curl -s http://localhost:8000/api/health # → {"ok":true,"service":"account-manager-v2"} # 3. Check accounts curl -s "http://localhost:8000/api/accounts?limit=3" # Returns total count + account list # 4. Register N accounts (protocol executor — fastest) curl -s -X POST http://localhost:8000/api/tasks/register \ -H "Content-Type: application/json" \ -d '{"count":10,"concurrency":2,"executor_type":"protocol","captcha_solver":"auto","extra":{"mail_provider":"imap_pool","identity_provider":"mailbox"}}' # Returns task_id. Monitor with step 5. # 5. Monitor task curl -s http://localhost:8000/api/tasks/ # Fields: status, progress, success, error_count, errors[] ``` ## Project Layout ``` GPT-AUTOREG/aBaiAutoplus/ ├── main.py # FastAPI entry point, port 8000 ├── gateway.py # Go gateway (port 8001) — optional, not needed for reg ├── platforms/chatgpt/ │ ├── protocol_register.py # Protocol registration worker (curl_cffi impersonation) │ ├── browser_register.py # Headed browser registration (Camoufox) │ └── constants.py # OpenAI auth endpoints, Sentinel config ├── providers/mailbox/ │ └── imap_pool.py # GenericImapMailboxPool — t-online.de IMAP ├── api/ │ ├── task_commands.py # RegisterTaskRequest model │ ├── provider_settings.py # Provider settings CRUD │ └── health.py ├── application/ │ └── task_commands.py # TaskCommandsService ├── services/ │ └── task_runtime.py # TaskRuntime (max_parallel_tasks=3) ├── data/ │ └── .imap_mailbox_pool_state.json # IMAP pool state — reset to {} on reconfig ├── account_manager.db # SQLite DB with all registered accounts ├── requirements.txt └── docker-compose.yml ``` ## Email Pool - **Active file:** `C:/Users/User/Desktop/GPT-AUTOREG/emails.txt` (t-online.de accounts, format `email:password`) - **Provider:** IMAP pool (id=2, provider_type=mailbox, provider_name=imap_pool) - **Config path in DB:** stored in `provider_settings` table; update via SQLite if needed: ```sql UPDATE provider_settings SET value = 'C:/Users/User/Desktop/GPT-AUTOREG/emails.txt' WHERE key = 'imap_pool_file'; ``` - **To change email file:** update the path in DB, reset pool state (`echo "{}" > data/.imap_mailbox_pool_state.json`), restart server - **Blocked domains:** t-online.de mostly burned — ~80% return `account_deactivated`. Consider rambler.ru for fresh pool. ## Captcha - **Provider:** RuCaptcha (id=1, provider_key=rucaptcha_api) - **Enabled:** true, is_default: true - **Solver mode:** `captcha_solver=auto` — system selects automatically - **Check config:** `curl -s "http://localhost:8000/api/provider-settings?provider_type=captcha"` ## Concurrency & Performance - **max_parallel_tasks=3** (hardcoded in task_runtime.py) - **Recommended concurrency=2** — stable. Concurrency=3 causes server crashes under heavy IMAP load. - **Protocol executor** uses curl_cffi impersonation (firefox144) + Sentinel PoW - **Performance:** ~1 success per minute with concurrency=2 ## Common Pitfalls ### Server crashes Server is unstable at concurrency=3. Restart with: ```bash cd "C:/Users/User/Desktop/GPT-AUTOREG/aBaiAutoplus" && python -u main.py ``` Database survives crashes. Incomplete tasks may produce partial results. **Note:** server often exits with code 1 on task completion — this is normal; just restart if you need more tasks. ### `account_deactivated` OpenAI rejects email: "You do not have an account because it has been deleted or deactivated." → Email was previously used and banned. Move to next email. Large portion of t-online.de pool is burned. ### IMAP timeout (180s) Worker waits for verification code from IMAP. If email doesn't arrive within 180s, task errors out. → Affected emails likely have slow IMAP delivery or inbox is full. ### `邮箱池为空` (empty mailbox pool) IMAP pool config file missing or empty. → Verify `C:/Users/User/Desktop/GPT-AUTOREG/emails.txt` exists and has entries. → Reset pool state: `echo "{}" > data/.imap_mailbox_pool_state.json` ### Provider settings API blocked Only DELETE is allowed for individual settings. No PUT/PATCH. → Workaround: update path directly in SQLite `provider_settings` table, then restart server. ### Stale tasks stuck at N/X Worker waiting for IMAP — can take up to 180s. Wait or check server logs. ### Token lifetime — hours, not days Session cookies (`__Secure-next-auth.session-token`) expire in ~1-3 hours after registration. Extract tokens IMMEDIATELY after task completion. Do not rely on accounts staying valid overnight. See `references/token-extraction.md` for the extraction workflow. ### "Unusual activity" on /backend-api/conversation New accounts (<24h old) get HTTP 403 `"Unusual activity has been detected from your device"` when hitting `/backend-api/conversation`. The `/backend-api/me` endpoint works (read-only). → Accounts need time to «warm up» (24-48h) before API usage. → The only working transport is Camoufox browser — plain httpx/requests are blocked by Cloudflare. ## Full Toolkit Archive When user asks to gather all autoreg files, consolidate from these sources: | Source | Contents | |---|---| | `_PROJECTS/oai-register/aBaiAutoplus/` | Main toolkit (exclude .venv, node_modules, frontend) | | `Downloads/Telegram Desktop/working_mails.txt` | 17,893 t-online.de accounts | | `Downloads/Telegram Desktop/*Good*Mail*` | 32 mail:pass lists | | `SESSION-BASE/autoreg.md` | Reference document | | `Desktop/conol_github/*autoreg*` | Conol scripts | | `Desktop/velokey_autoreg/` | Velokey autoreg | | `Desktop/sepa_autoreg.py` + `~/sepa_autoreg.py` | SEPA autoreg | | `~/gorouter_autoreg.py` | Gorouter autoreg | | `~/Desktop/baaaai_autoreg.py` | Baia autoreg | | `tmp/gmail_autoreg.py` | Gmail autoreg | | `tmp/autoreg_v*.py` | 44 iterative versions | | `_PROJECTS/grok_proxy_pool.py` + `grok_cli_proxy.py` | Proxy scripts | **Archive command:** `tar czf GPT-AUTOREG-FULL.tar.gz GPT-AUTOREG-FULL/` (Use tar, not zip/7z — only tar+gzip available in Git Bash on this Windows host) ## Account Validity Check Accounts are auto-checked by LifecycleManager. Statuses: - `registered` — just created, not yet verified - `valid` — token works, account active - `invalid` — token expired or account banned Check latest account state: `curl -s "http://localhost:8000/api/accounts?limit=3"` ## Token Extraction & API Usage After successful registration, extract tokens from the SQLite DB for API use: ```python # Query valid accounts with tokens import sqlite3, json db = sqlite3.connect("C:/Users/User/Desktop/GPT-AUTOREG/aBaiAutoplus/account_manager.db") rows = db.execute(""" SELECT ao.account_id, ao.remote_email, ac.key, ac.value FROM account_overviews ao JOIN account_credentials ac ON ao.account_id = ac.account_id WHERE ao.validity_status = 'valid' AND ac.credential_type IN ('token','cookie') """).fetchall() ``` ### accounts_tokens.json format The image API server (`image_api_server.py` in `GPT-AUTOREG/`) expects: ```json { "accounts": [ { "email": "[REDACTED-EMAIL]", "tokens": { "session_token": "eyJhbG...", "access_token": "eyJhbG...", "legacy_token": "eyJhbG...", "csrf_token": "abc123%7Cdef456", "cookies": "{'__Secure-next-auth.session-token': '...', ...}" } } ] } ``` ### image_api_server.py FastAPI server on port 8400. Uses Camoufox browser to bypass Cloudflare and call `chatgpt.com/backend-api/conversation` for DALL-E image generation. ```bash cd "C:/Users/User/Desktop/GPT-AUTOREG" && python -u image_api_server.py # Endpoints: GET /health, GET /accounts, POST /generate ``` **Known limitation:** accounts <24h old return 403 "Unusual activity". The `/me` endpoint works; conversation endpoint needs aged accounts. ### Camoufox transport Only Camoufox (Firefox-based anti-detection browser) bypasses Cloudflare for `chatgpt.com`. Playwright Chromium and httpx both get blocked with 403 challenge pages. ```python from camoufox.async_api import AsyncCamoufox async with AsyncCamoufox(headless=True, locale="en-US", block_webrtc=True) as browser: page = await browser.new_page() await page.goto("https://chatgpt.com/") await page.context.add_cookies(cookies_list) # Now fetch() from page.evaluate() inherits cookies + TLS fingerprint ``` See `references/token-extraction.md` for full workflow.