核心功能
TrainingPeaks Skill 提供 CLI 方式访问 TrainingPeaks 内部 API,无需官方 API 密钥,仅需浏览器 Cookie 即可获取完整的训练数据。主要能力包括:
- 训练计划管理:查询指定日期范围内的训练安排(支持 90 天范围过滤)
- 体能指标监控:获取 CTL(慢性训练负荷)、ATL(急性训练负荷)、TSB(训练压力平衡)等核心骑行/跑步科学指标
- 个人记录追踪:按运动类型和时间段查询功率、心率、速度等 PR 数据
- 训练详情查看:获取单次训练的完整信息,包括教练备注和完成状态
技术架构亮点
纯 Python 标准库实现,零外部依赖,单文件可执行。采用 Cookie→Bearer Token 的认证链,Token 自动刷新机制,凭证本地存储(~/.trainingpeaks/ 目录,0600 权限)。内置 150ms 请求限速,避免触发服务端防护。
显著优势
1. 零配置门槛:无需申请 TrainingPeaks 开发者账号或支付 API 费用
2. 数据完整性:直接访问内部 API,获取比官方导出更丰富的原始数据
3. 脚本友好:--json 模式支持管道化数据处理,适合自动化分析流程
4. 跨平台:标准库依赖确保 macOS/Linux/Windows 原生兼容
局限性与风险
| 维度 | 说明 |
|------|------|
| 认证稳定性 | 依赖 `Production_tpAuth` Cookie,有效期数周至数月不等,过期需手动更新 |
| 非官方支持 | 使用内部 API,TrainingPeaks 可能随时更改端点或加强防护 |
| 功能边界 | 只读操作,不支持创建/修改训练计划或上传活动数据 |
| 速率限制 | 150ms 硬编码延迟,批量查询大数据集耗时较长 |
| 账户安全 | Cookie 泄露等同于账号泄露,需严格保管 `~/.trainingpeaks/` 目录 |
适合人群
- 数据驱动的耐力运动爱好者(铁三、公路车、马拉松)
- 需要自动化训练数据分析的教练和运动员
- 希望将 TrainingPeaks 数据接入自建 Dashboard 的技术用户
- 对官方导出功能不满足的重度平台用户
常规风险提示
Cookie 凭证属于高敏感信息,建议:
- 仅通过环境变量
TP_AUTH_COOKIE在 CI/自动化场景使用,避免硬编码 - 定期检查
~/.trainingpeaks/目录权限,确保非当前用户不可读取 - 发现异常登录时立即在 TrainingPeaks 网页端清除会话并重新认证
- 不建议在共享环境或容器镜像中持久化存储凭证文件