Files

9.1 KiB

name, description, triggers
name description triggers
chatgpt-autoreg 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.
авторег gpt
регистрация chatgpt аккаунтов
массовый авторег
зарегать аккаунты
user asks about aBaiAutoplus or oai-register

ChatGPT Auto-Registration (aBaiAutoplus)

Quick Start

# 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/<task_id>
# 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:
    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:

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:

# 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:

{
  "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.

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.

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.