[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82908":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":13,"forks30d":13,"starsTrendScore":17,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":8,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":13,"starSnapshotCount":13,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},82908,"reg-factory","tiantianGPU\u002Freg-factory","tiantianGPU",null,"Python",685,350,3,0,54,291,594,305,11.64,false,"main",true,[],"2026-06-12 02:04:29","\u003Cdiv align=\"center\">\n\n# 🏭 reg-factory\n\n### Outlook · ChatGPT · Grok · Claude 全自动注册机\n\n**自动批量注册 Outlook 邮箱 → 用它在 ChatGPT \u002F Grok \u002F Claude 上注册账号 → 导出可直登 cookie**\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOutlook-0078D4?style=for-the-badge&logo=data:image\u002Fsvg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTcuODggMTIuMDRxMCAuNDUtLjExLjg3LS4xLjQxLS4zMy43NC0uMjIuMzMtLjU4LjUyLS4zNy4yLS44Ny4ydC0uODUtLjJxLS4zNS0uMjEtLjU3LS41NS0uMjItLjMzLS4zMy0uNzUtLjEtLjQyLS4xLS44NnQuMS0uODdxLjEtLjQzLjM0LS43Ni4yMi0uMzQuNTktLjU0LjM2LS4yLjg3LS4ydC44Ni4ycS4zNS4yMS41Ny41NS4yMi4zNC4zMS43Ny4xLjQzLjEuODh6TTI0IDEydjkuMzhxMCAuNDYtLjMzLjgtLjMzLjMyLS44LjMySDcuMTNxLS40NiAwLS44LS4zMy0uMzItLjMzLS4zMi0uOFYxOEgxcS0uNDEgMC0uNy0uMy0uMy0uMjktLjMtLjdWN3EwLS40MS4zLS43US41OCA2IDEgNmg2LjVWMi41NXEwLS40NC4zLS43NS4zLS4zLjc1LS4zaDEyLjlxLjQ0IDAgLjc1LjMuMy4zLjMuNzVWMTAuODVsMS4yNC43MmguMDFxLjEuMDcuMTguMTguMDcuMTIuMDcuMjV6bS02LTguMjV2M2gzdi0zem0wIDQuNXYzaDN2LTN6bTAgNC41djEuODNsMy4wNS0xLjgzem0tNS4yNS05djNoMy43NXYtM3ptMCA0LjV2M2gzLjc1di0zem0wIDQuNXYyLjAzbDIuNDEgMS41IDEuMzQtLjh2LTIuNzN6TTkgMy43NVY2aDJsLjEzLjAxLjEyLjA0di0yLjN6TTUuOTggMTUuOThxLjkgMCAxLjYtLjMuNy0uMzIgMS4xOS0uODYuNDgtLjU1LjczLTEuMjguMjUtLjc0LjI1LTEuNjEgMC0uODMtLjI1LTEuNTUtLjI0LS43MS0uNzEtMS4yNHQtMS4xNS0uODNxLS42OC0uMy0xLjU1LS4zLS45MiAwLTEuNjQuMy0uNzEuMy0xLjIuODUtLjUuNTQtLjc1IDEuMy0uMjUuNzQtLjI1IDEuNjMgMCAuODQuMjUgMS41NS4yNC43MS43IDEuMjMuNDcuNTIgMS4xNi44Mi42OS4zIDEuNjIuM3pNNy41IDIxaDEyLjM5TDEyIDE2LjE4VjE3cTAgLjQxLS4zLjctLjI5LjMtLjcuM0g3LjV6bTE1LS4xM3YtNy40OWwtNi4zIDMuNzl6Ii8+PC9zdmc+Cg==&logoColor=white\" alt=\"Outlook\" height=\"34\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FChatGPT-10A37F?style=for-the-badge&logo=data:image\u002Fsvg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTTIyLjI4MTkgOS44MjExYTUuOTg0NyA1Ljk4NDcgMCAwIDAtLjUxNTctNC45MTA4IDYuMDQ2MiA2LjA0NjIgMCAwIDAtNi41MDk4LTIuOUE2LjA2NTEgNi4wNjUxIDAgMCAwIDQuOTgwNyA0LjE4MThhNS45ODQ3IDUuOTg0NyAwIDAgMC0zLjk5NzcgMi45IDYuMDQ2MiA2LjA0NjIgMCAwIDAgLjc0MjcgNy4wOTY2IDUuOTggNS45OCAwIDAgMCAuNTExIDQuOTEwNyA2LjA1MSA2LjA1MSAwIDAgMCA2LjUxNDYgMi45MDAxQTUuOTg0NyA1Ljk4NDcgMCAwIDAgMTMuMjU5OSAyNGE2LjA1NTcgNi4wNTU3IDAgMCAwIDUuNzcxOC00LjIwNTggNS45ODk0IDUuOTg5NCAwIDAgMCAzLjk5NzctMi45MDAxIDYuMDU1NyA2LjA1NTcgMCAwIDAtLjc0NzUtNy4wNzI5em0tOS4wMjIgMTIuNjA4MWE0LjQ3NTUgNC40NzU1IDAgMCAxLTIuODc2NC0xLjA0MDhsLjE0MTktLjA4MDQgNC43NzgzLTIuNzU4MmEuNzk0OC43OTQ4IDAgMCAwIC4zOTI3LS42ODEzdi02LjczNjlsMi4wMiAxLjE2ODZhLjA3MS4wNzEgMCAwIDEgLjAzOC4wNTJ2NS41ODI2YTQuNTA0IDQuNTA0IDAgMCAxLTQuNDk0NSA0LjQ5NDR6bS05LjY2MDctNC4xMjU0YTQuNDcwOCA0LjQ3MDggMCAwIDEtLjUzNDYtMy4wMTM3bC4xNDIuMDg1MiA0Ljc4MyAyLjc1ODJhLjc3MTIuNzcxMiAwIDAgMCAuNzgwNiAwbDUuODQyOC0zLjM2ODV2Mi4zMzI0YS4wODA0LjA4MDQgMCAwIDEtLjAzMzIuMDYxNUw5Ljc0IDE5Ljk1MDJhNC40OTkyIDQuNDk5MiAwIDAgMS02LjE0MDgtMS42NDY0ek0yLjM0MDggNy44OTU2YTQuNDg1IDQuNDg1IDAgMCAxIDIuMzY1NS0xLjk3MjhWMTEuNmEuNzY2NC43NjY0IDAgMCAwIC4zODc5LjY3NjVsNS44MTQ0IDMuMzU0My0yLjAyMDEgMS4xNjg1YS4wNzU3LjA3NTcgMCAwIDEtLjA3MSAwbC00LjgzMDMtMi43ODY1QTQuNTA0IDQuNTA0IDAgMCAxIDIuMzQwOCA3Ljg3MnptMTYuNTk2MyAzLjg1NThMMTMuMTAzOCA4LjM2NCAxNS4xMTkyIDcuMmEuMDc1Ny4wNzU3IDAgMCAxIC4wNzEgMGw0LjgzMDMgMi43OTEzYTQuNDk0NCA0LjQ5NDQgMCAwIDEtLjY3NjUgOC4xMDQydi01LjY3NzJhLjc5Ljc5IDAgMCAwLS40MDctLjY2N3ptMi4wMTA3LTMuMDIzMWwtLjE0Mi0uMDg1Mi00Ljc3MzUtMi43ODE4YS43NzU5Ljc3NTkgMCAwIDAtLjc4NTQgMEw5LjQwOSA5LjIyOTdWNi44OTc0YS4wNjYyLjA2NjIgMCAwIDEgLjAyODQtLjA2MTVsNC44MzAzLTIuNzg2NmE0LjQ5OTIgNC40OTkyIDAgMCAxIDYuNjgwMiA0LjY2ek04LjMwNjUgMTIuODYzbC0yLjAyLTEuMTYzOGEuMDgwNC4wODA0IDAgMCAxLS4wMzgtLjA1NjdWNi4wNzQyYTQuNDk5MiA0LjQ5OTIgMCAwIDEgNy4zNzU3LTMuNDUzN2wtLjE0Mi4wODA1TDguNzA0IDUuNDU5YS43OTQ4Ljc5NDggMCAwIDAtLjM5MjcuNjgxM3ptMS4wOTc2LTIuMzY1NGwyLjYwMi0xLjQ5OTggMi42MDY5IDEuNDk5OHYyLjk5OTRsLTIuNTk3NCAxLjQ5OTctMi42MDY3LTEuNDk5N1oiLz48L3N2Zz4K&logoColor=white\" alt=\"ChatGPT\" height=\"34\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGrok-000000?style=for-the-badge&logo=x&logoColor=white\" alt=\"Grok\" height=\"34\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude-D97757?style=for-the-badge&logo=anthropic&logoColor=white\" alt=\"Claude\" height=\"34\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FQQ%E7%BE%A4-1048143135-12B7F5?style=for-the-badge&logo=qq&logoColor=white\" alt=\"QQ 交流群 1048143135\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.10+-3776AB?style=flat-square&logo=python&logoColor=white\" alt=\"Python\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPlaywright-自动化-2EAD33?style=flat-square\" alt=\"Playwright\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBitBrowser-指纹隔离-5A4FCF?style=flat-square\" alt=\"BitBrowser\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClash%20Verge-节点切换-1F8FFF?style=flat-square\" alt=\"Clash Verge\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-educational-lightgrey?style=flat-square\" alt=\"license\" \u002F>\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\n---\n\n**reg-factory** 是一套全自动注册流水线：先自注册 **Outlook** 邮箱，再用同一邮箱在\n**ChatGPT \u002F Grok \u002F Claude** 上批量注册账号，并导出可直登的 cookie。底层用\n**比特浏览器(BitBrowser)** 做指纹隔离、**Clash Verge** 做节点切换绕区域封锁与 Cloudflare 风控、\n接码\u002F打码平台过手机号与验证码。\n\n> ⚠️ 仅供学习与授权测试使用。所有密钥通过环境变量提供，仓库内不含任何明文凭据。\n\n---\n\n## 1. 前置条件\n\n### ① 比特浏览器 BitBrowser\n- 安装并**启动**比特浏览器客户端，确保本地 API 在线（默认 `http:\u002F\u002F127.0.0.1:54345`）。\n- 客户端要保持运行——脚本通过该 API 创建\u002F打开\u002F关闭浏览器窗口。\n\n### ② Clash Verge（开启 API 权限）\n- 安装 Clash Verge 并导入你的机场订阅，选一个节点并开启「系统代理 \u002F Tun 模式」。\n  - 注册 Grok 需要能过 Cloudflare 的干净节点；脚本会在订阅节点里自动逐个试探可用节点。\n- **设置 → External Controller**：开启外部控制器 API，并**设置一个 secret**。\n  - 记下控制面端口（Clash Verge 默认 `9097`，mihomo 内核默认 `9090`）。\n  - 记下混合代理端口（mixed-port，默认 `7897`）。\n- 把 secret 填进 `.env` 的 `CLASH_SECRET`（见下）。\n\n### ③ Python\n- Python 3.10+。\n\n---\n\n## 2. 安装\n\n```bash\npip install -r requirements.txt\nplaywright install chromium\n```\n\n---\n\n## 3. 配置（密钥走环境变量）\n\n复制模板并填写：\n\n```bash\ncp .env.example .env\n```\n\n`.env` 已被 `.gitignore` 忽略。真实的进程环境变量优先于 `.env`。\n\n| 环境变量 | 说明 | 必填 |\n|---|---|---|\n| `CLASH_SECRET` | Clash Verge External Controller 的 secret | 走节点时必填 |\n| `CLASH_API` | Clash 控制面地址（默认 `http:\u002F\u002F127.0.0.1:9097`） | 否 |\n| `CLASH_PROXY` | Clash 混合端口代理（默认 `http:\u002F\u002F127.0.0.1:7897`） | 否 |\n| `CLASH_GROUP` | 切换出口的代理组名（默认 `GLOBAL`） | 否 |\n| `BITBROWSER_API` | 比特浏览器本地 API（默认 `http:\u002F\u002F127.0.0.1:54345`） | 否 |\n| `SMS_TOKEN` | 接码平台 firefox.fun 的 token | 需手机号时必填 |\n| `HERO_SMS_API_KEY` | 备用接码 hero-sms.com 的 api_key | 否 |\n| `CAPSOLVER_API_KEY` | CapSolver 打码 key | 按需 |\n| `EZCAPTCHA_API_KEY` | EZ-Captcha 打码 key | 按需 |\n| `OUTLOOK_CARD` | 闪客云邮箱卡密（接口批量取号用） | 用接口取号时填 |\n| `OUTLOOK_PROXIES` | Outlook 自注册住宅代理池，`user:pass@host:port`，换行\u002F逗号分隔 | 否 |\n| `MAIL_*` | 备用域名邮箱（一般用不到） | 否 |\n\n---\n\n## 4. 运行\n\n### 端到端（注册邮箱 → 三平台注册）\n```bash\npython run_full_flow.py                       # 注册 1 个 outlook 号后在 claude 上注册\npython run_full_flow.py --platforms claude chatgpt grok\npython run_full_flow.py --skip-email --email a@outlook.com --password xxx\npython run_full_flow.py --dry-run             # 只打印将执行的命令\n```\n> 自动注入 `HTTP(S)_PROXY` 与 `CLASH_API\u002FSECRET\u002FGROUP` 给子进程。\n\n### 仅三平台注册（已有邮箱池 emails.txt）\n```bash\npython register_three_platforms.py --from-pool\npython register_three_platforms.py --email a@outlook.com --password xxx --token \u003Crefresh>\npython register_three_platforms.py --loop     # 常驻消费池\n```\n并行流水线模式下建议先起共享取码服务（避免三窗口并发登录同一邮箱）：\n```bash\npython mailbox_broker.py --port 8765\n```\n\n### 仅养号（持续自注册 Outlook，写入 _outlook_pool\u002F 与 emails.txt）\n```bash\npython outlook_reg_loop.py                     # 循环\npython outlook_reg_loop.py --count 20          # 注册 20 个后退出\n```\n\n### 导出已注册账号 cookie（供直登扩展使用）\n```bash\npython export_accounts.py                      # 全部平台\npython export_accounts.py claude chatgpt       # 指定平台\n```\n\n### 批量解锁被锁的 Outlook 账号\nBitBrowser + Playwright,复用注册同款 PX 按压验证逻辑;按结果分类输出到\n`unlock_results\u002F`(`unlocked_*` 成功 \u002F `needs_phone_*` 需短信 \u002F `failed_*` 失败)。\n打码 key 走环境变量 `EZCAPTCHA_API_KEY`。\n```bash\npython unlock_outlook.py                                       # 自动找最新的 locked 文件\npython unlock_outlook.py --input outlook_accounts\u002Faccounts.txt # 指定账号文件\npython unlock_outlook.py --input emails_locked.txt --concurrency 2\npython unlock_outlook.py --input accounts.txt --proxy-file proxies.txt\n```\n> 输入每行 `email----password`（可带额外字段）。解锁后再跑下面的 token 提取。\n\n### 提取 Outlook 的 Graph OAuth refresh_token\n纯 `requests` 模拟 OAuth2 授权码流程（免浏览器），用账号密码换取\nMicrosoft Graph 的 `refresh_token`，输出 `email----password----refresh_token----client_id`，\n结果存到 `outlook_accounts\u002Fgraph_tokens_\u003C时间戳>.txt`。\n```bash\npython extract_graph_tokens.py                                   # 自动扫 unlock_results\u002F，跳过已提取\npython extract_graph_tokens.py outlook_accounts\u002Faccounts.txt     # 指定账号文件\npython extract_graph_tokens.py --email a@outlook.com --password xxx\npython extract_graph_tokens.py accounts.txt --concurrency 10     # 并发数(默认 5)\n```\n> 走系统代理（Clash），避免 `account.live.com` 限流；账号文件每行 `email----password----...`。\n\n### Clash 节点自检\n```bash\npython -m common.proxy_switch list             # 列出 GLOBAL 组节点\npython _clash_verge.py ping                    # 控制面连通性\n```\n\n---\n\n## 5. 目录约定\n\n| 路径 | 内容 |\n|---|---|\n| `emails.txt` | 邮箱池（`email----password----token----clientid`），运行时生成 |\n| `cookies\u002F` | 注册成功导出的 cookie（`full_*.json` \u002F `sk_*.txt`） |\n| `_outlook_pool\u002F` | outlook_reg_loop 产出的待用号 |\n| `tri_register_logs\u002F` | 三平台注册日志 |\n| `screenshots*\u002F` | 调试截图 |\n\n以上运行期数据均被 `.gitignore` 忽略，发布包内为空。\n\n---\n\n## 6. 常见问题\n\n- **claude 报 app-unavailable-in-region**：claude.com 对本机 IP 区域封锁，需开 Clash 走干净\n  节点（`run_full_flow` \u002F `register.py` 的 `--node auto`）。\n- **grok 全页 Cloudflare 拦截**：必须切 Clash 节点；`register_grok.py` 会用 curl_cffi 指纹\n  逐个试节点找能过的。\n- **三窗口登录同一 outlook 报并发登录**：用 `mailbox_broker.py` 共享取码（每号只登一次）。\n- **缺 secret 连不上 Clash 控制面**：确认 External Controller 已开 API 且 `CLASH_SECRET` 正确。\n\n---\n\n## 7. 交流 \u002F 支持\n\n- 💬 **QQ 交流群：`1048143135`**（使用问题、避坑、更新通知）\n\n---\n\n## 🔗 Friend Links\n\n- 🐧 [**LinuxDO**](https:\u002F\u002Flinux.do) — A community for tech enthusiasts\n\n---\n\n## ☕ 打赏\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Freward_qr.jpg\" alt=\"打赏码\" width=\"280\" \u002F>\n\n**谢谢老板打赏，您的打赏是我更新的动力！！！**\n\n\u003C\u002Fdiv>\n","reg-factory 是一个全自动注册机，用于批量注册 Outlook 邮箱，并利用这些邮箱在 ChatGPT、Grok 和 Claude 上创建账号，最终导出可以直接登录的 cookie。项目采用 Python 语言开发，支持自动化处理整个注册流程，包括邮箱验证等步骤，极大提高了效率。适用于需要快速创建多个 AI 平台账号的研究人员或开发者，尤其是在进行大规模测试或数据收集时。",2,"2026-06-11 04:09:36","CREATED_QUERY"]