duwqijlk/muse-protocol
安全用纯 HTTP Python 实现 muse.ai 注册与邀请码兑换流程,适合研究其协议细节的开发者。
项目介绍
这个仓库记录 muse.ai 账号注册与邀请码兑换背后的 HTTP 协议,结论来自逐字段比对抓包,不依赖浏览器。musepy 包里有一套完整流程客户端(client.py),另外附带可选的 falco 性能事件上报(machineId 固定为 not_set)和 CAA 注册漏斗事件上报。端到端示例 example_register.py 从落地页一路走到 OTP 确认、注册完成、会话激活、VM 唤醒和邀请码兑换。
README 本身是一份协议走查:列出各接口和预期状态码,再指出容易出错的地方。目标读者是想弄清注册流程的开发者,而不是只想注册账号的普通用户。
快速使用
需要 Python 和一份 JSON 配置文件。先装依赖,复制配置模板,填入邮箱和可选代理,再运行示例:
pip install -r requirements.txt
cp config.example.json config.json
python example_register.py
README 说流程要用 JP 节点,该地区不需要绑卡。脚本按顺序执行:先用 GET / 拿初始 cookie,再 POST /api/auth/native/restart(body 为 {"resume": false})取 CSRF token,然后依次 send-otp、confirm-otp、register-completion,拿到 frl_access_token 和 frl_account_id。之后必须调 accept-tos、vm/wake、stateful-sharing,再调 invite-code/redeem,成功返回 {"redemptionStatus": "redeemed"}。
README 记录的协议细节包括:confirm-otp 必须带 supports_muse_link_transparency: true;first_name 是名、last_name 是姓,生日早于约 18 年前会返回 403;accept-tos 要填完整日文披露文案才能激活会话;不调 vm/wake 会让有效码误报 invalid,调用前需从已登录页面提取 vmId 这个 UUID。
使用约束
项目声明仅供个人、非商业的学习与研究使用,不采用 MIT 等开源许可证、不得再分发,仓库元数据为 NOASSERTION。使用者需遵守目标站点的服务条款和当地法律法规。兑换失败的原因对应 already_redeemed(本账号已兑过)、used_up(达到 30 次上限)和 invalid(码不存在或未调 vm/wake)。注册完成后 register-completion 响应头下发的 hatch_sess cookie(约 886 字符)是后续所有 hatch 接口的凭证;hatch_vml 在注册阶段被清空,不是必需项。埋点模块可在配置中关闭,不影响流程跑通。
HotRepo 点评
在 HotRepo 新项目榜上,该仓库于 2026-11-14 记录到 124 星、78 fork,增长窗口约为当天 01:24 至 04:15 UTC 的三个小时,未记录到 GitHub 全语言日榜名次。对于一个小型协议客户端,接近 0.6 的 fork/star 比并不常见,说明吸引人的可能是代码本身而非积累的用户群。README 中关于 JP 节点免绑卡的说法和 Telegram 交流群,超出了协议文档能佐证的范围,读者应将其视为未经核实的使用说明。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。