2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
我使用“起飞”(Liftoff)这款健身房训练记录应用来追踪我的锻炼情况。这款应用非常适合记录组数和次数,但我希望克劳德(Claude)能帮我分析训练数据——建议调整训练计划、发现平台期、标记不平衡问题。问题在于:应用里没有导出按钮,我的数据被锁在了应用内部。
于是我请克劳德帮忙解决这个问题。
克劳德运行 mitmproxy
我告诉克劳德,我想拦截“起飞”应用的网络流量。它一步步指导我完成所有操作——安装 mitmproxy、配置我 iPhone 的代理设置、安装用于 HTTPS 解密的 CA 证书。我只需要按照指示操作,在手机屏幕上点击确认即可。
接着,克劳德运行了 mitmdump,让我打开“起飞”应用并滚动浏览我的训练记录,然后自行读取捕获到的网络流量。
克劳德逆向工程解析 API
通过 mitmdump 的输出,克劳德发现“起飞”使用了 tRPC——一种 TypeScript 远程过程调用框架,会将多个请求打包成特定的封装格式。该 API 托管在一个带版本号的子域名下(v2-12-2.api.getgymbros.com),并且要求使用 iOS 的用户代理字符串。
克劳德完整梳理出了整个 API:
-
认证流程 ——
user.signIn端点返回访问令牌和刷新令牌,并提供user.refreshToken端点用于令牌续期 -
训练记录端点 ——
post.getMyPosts返回你记录过的所有训练内容 -
动作类型编码 ——
WR表示重量/次数,AB表示辅助自重训练,BR表示自重加阻力训练,DD表示距离/时长 - 组数据结构 —— 每组包含类型(热身组或正式组),以及两个输入字段,其含义根据动作类型而变化
我一个数据包都没看过,全部由克劳德完成。
克劳德构建命令行工具
一旦克劳德理解了 API,它就用 Cobra 框架编写了一个 Go 语言命令行工具。该工具处理了认证令牌的存储、自动刷新令牌,以及 tRPC 请求格式。
这个工具随后不断扩展功能:
-
workouts list—— 以 fitdown 或 JSON 格式导出训练记录,支持按日期或动作筛选 -
workouts stats—— 按动作汇总训练量,并生成月度 ASCII 条形图 -
bodyweights stats—— 体重趋势分析,包含平台期检测
我配置了 goreleaser 以支持多平台构建,并创建了 Homebrew 软件源,便于安装:
brew tap DTTerastar/tap
brew install liftoff-export
完美闭环
最让我喜欢的部分是:我开发这个工具的初衷,就是为了把我的训练数据重新传回给克劳德。
现在我可以运行 liftoff-export workouts list --since 6m --json,将过去六个月的结构化训练数据交给克劳德。它能看到我在每个动作中的实际组数、次数和重量,并据此为我提供训练建议——哪些地方需要调整,哪里遇到了瓶颈,哪些方法有效。
克劳德逆向解析了 API,构建了提取数据的工具,现在又利用这些数据指导我的训练。人工智能完成了自身的闭环。
链接
- GitHub:DTTerastar/liftoff-export-cli
- “起飞”应用:getgymbros.com
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。