一个用于 Windows 桌面的本地工具。
它的作用是把一批“单账号源 JSON”批量整理成一个可导入的 Sub2API 目标 JSON。工具提供图形界面,适合直接点选文件、检查有效性、修改导出设置后再导出。
主要应用场景:批量将CPA(CLI Proxy Api)导出的大量账号json转换为Sub2API可导入的格式。
- 批量添加多个
.json文件 - 直接选择整个文件夹导入
- 自动识别当前样本中的 3 类源文件变体
- 在列表中显示邮箱、目标名称、套餐、格式类型、校验结果
- 无效文件保留显示,但默认不会参与导出
- 把多个源文件合并导出成 1 个目标 JSON
- 支持设置输出目录、输出文件名、并发、优先级、倍率、到期自动暂停
- 支持统一给所有导出账号挂同一个代理
- Windows
- Python 3.14
在项目目录执行:
python -m pip install -r requirements.txtpython main.py启动后会打开桌面窗口。
- 点击
添加文件选择一个或多个源 JSON - 或点击
添加文件夹一次导入整个目录 - 文件载入后会出现在文件列表中
文件列表会显示:
- 是否参与导出
- 文件名
- 邮箱
- 目标名称
- 套餐
- 源格式
- 校验结果
如果某个文件格式不对,列表里会直接显示原因。
主界面只显示摘要。
点击 编辑导出设置 可以打开独立设置窗口,修改:
- 输出目录
- 输出文件名
- 并发数
- 优先级
- 倍率
- 是否到期后自动暂停
- 是否启用代理
- 代理名称、协议、地址、端口、用户名、密码、状态
保存后,主界面会更新摘要。
点击 开始转换 后,程序会:
- 跳过无效文件
- 把已勾选的有效文件合并成一个目标 JSON
- 写入你指定的输出目录
导出完成后:
- 结果区会显示成功数量、失败数量、输出路径
- 可以点击
打开输出目录直接查看结果文件
当前版本的固定规则如下:
- 只处理
.json文件 - 目标始终导出为 1 个合并文件
- 账号
name取邮箱@前面的部分 - 如果名称重复,会自动变成
name-2、name-3 platform固定为openaitype固定为oauth- 源文件中的
expired会统一写成目标里的expires_at email、client_id、organization_id、plan_type、subscription_expires_at会尽量从 JWT 中补齐- 不会写入
device_id、session_token
导出文件顶层固定只有 3 个字段:
{
"exported_at": "2026-04-08T10:00:00Z",
"proxies": [],
"accounts": []
}其中:
exported_at:导出时间proxies:如果启用了代理,这里会写代理配置accounts:转换后的账号列表
cpa_to_sub2api/
├─ main.py
├─ requirements.txt
├─ README.md
├─ app/
│ ├─ __init__.py
│ ├─ converter.py
│ └─ ui/
│ ├─ __init__.py
│ └─ main_window.py
└─ tests/
└─ test_converter.py
运行:
python -m pytest -q当前测试覆盖的重点包括:
- 3 类源文件格式识别
- JWT 字段补全
- 重名自动处理
- 有代理和无代理两种导出结果
- 坏 JSON、缺字段、时间错误、代理端口错误