trainingpeaks

🚴 专业耐力运动数据管家

基于 TrainingPeaks 官方 API 的 CLI 工具,纯 Python 标准库实现,帮助耐力运动爱好者和教练高效获取训练计划、健身指标与个人记录。

收藏
13.2k
安装
3.2k
版本
v1.0.1
CLS 安全性认证2026-05-14
点击查看完整报告 >

使用说明

核心用法

TrainingPeaks Skill 是一款面向耐力运动(骑行、跑步、游泳、铁人三项)的 CLI 数据访问工具,通过 Cookie 认证方式连接 TrainingPeaks 内部 API。用户只需从浏览器获取 Production_tpAuth Cookie 即可完成认证,无需申请 API Key。核心功能包括:运动员资料查询、训练计划与锻炼记录检索(支持 90 天范围筛选)、CTL/ATL/TSB 健身指标追踪,以及多维度个人记录(PR)查询。所有数据支持 --json 输出,便于与其他工具链集成。

显著优点

1. 零依赖部署:纯 Python 标准库实现,无需 pip 安装任何第三方包,极大降低环境冲突和供应链攻击风险。
2. 安全凭证管理:Cookie 和 Token 存储于 ~/.trainingpeaks// 目录,采用 0600 文件权限,支持环境变量覆盖,兼顾安全性与自动化场景。

3. 智能认证机制:Bearer Token 自动缓存与刷新,Cookie 有效期长达数周,减少重复认证负担。

4. 专业运动数据覆盖:完整支持 CTL(慢性训练负荷)、ATL(急性训练负荷)、TSB(训练压力平衡)等进阶健身指标,以及功率、心率、配速等多维度 PR 查询。

5. 限速与容错:内置 150ms 请求间隔限制,避免触发 API 限流;完善的错误提示引导用户重新认证。

潜在缺点与局限性

1. 只读限制:无法创建、修改或删除训练计划,仅适合数据分析和监控场景,不适用于主动训练管理。
2. Cookie 获取门槛:非技术用户可能不熟悉浏览器 DevTools 操作,首次配置存在一定学习成本。

3. 查询范围受限:单次锻炼查询最大 90 天,长期历史数据需分批次获取。

4. 平台绑定:完全依赖 TrainingPeaks 平台,若官方 API 变更或 Cookie 机制调整,可能导致功能失效。

5. 无图形界面:纯 CLI 工具,对偏好可视化操作的用户不够友好。

适合的目标群体

  • 耐力运动教练:批量获取学员训练数据,进行周期化训练分析
  • 严肃业余运动员:深度追踪 CTL/ATL/TSB 趋势,优化训练负荷管理
  • 数据分析师/运动科研人员:提取结构化 JSON 数据用于统计建模和研究
  • 自动化爱好者:结合 CI/CD 或定时任务,实现训练数据自动同步与报告生成

使用风险

  • 凭证泄露风险:Cookie 相当于长期有效的登录凭证,若设备被入侵,攻击者可获取训练数据;建议配合全盘加密使用
  • Token 过期中断:虽然支持自动刷新,但极端情况下(如长期离线后首次使用)可能遇到认证失败,需手动重新获取 Cookie
  • API 变更风险:TrainingPeaks 未公开承诺内部 API 稳定性,未来版本可能不兼容
  • 数据隐私边界:工具本身不上传数据至第三方,但用户需自行确保 JSON 输出文件的安全存储

安全解读

核心用法

TrainingPeaks Skill 是一款基于纯Python标准库开发的命令行工具,无需任何pip依赖即可运行。它通过Cookie认证方式连接TrainingPeaks官方API,为耐力运动爱好者提供完整的训练数据访问能力。

认证流程:用户从浏览器DevTools复制Production_tpAuth Cookie值,通过auth命令完成认证。工具会自动换取Bearer Token并缓存运动员ID,Token过期后自动刷新。

主要功能模块

  • 训练日程workouts命令支持90天日期范围查询,可按计划/已完成状态筛选
  • 单次训练详情workout命令获取完整训练描述、教练评语和结构化数据
  • 健身指标fitness命令输出CTL(慢性训练负荷)、ATL(急性训练负荷)、TSB(训练压力平衡)曲线
  • 个人纪录peaks命令支持自行车功率(5秒至90分钟)和跑步配速(400米至马拉松)查询

显著优点

| 特性 | 说明 |
|------|------|

零依赖 | 纯标准库实现,urllib处理HTTPS,json/datetime处理数据,彻底消除供应链风险 |

| **权限管控** | 本地凭证存储使用0600文件权限,符合Unix安全最佳实践 |
| **节流保护** | 内置150ms请求间隔,防止API限流触发 |
| **灵活输出** | 默认人类可读格式,`--json`开关输出原始API响应便于二次开发 |
| **环境兼容** | 支持`TP_AUTH_COOKIE`环境变量,方便CI/CD和自动化脚本 |

潜在局限

  • 认证依赖浏览器:需手动从浏览器提取Cookie,无法纯脚本化首次认证
  • Cookie有效期:官方Cookie通常持续数周,过期后需重新提取
  • 查询窗口限制:训练数据查询最大90天范围,长周期分析需多次调用
  • 无写入权限:只读API,无法创建或修改训练计划
  • 个人开发者维护:T3来源级别,长期维护承诺未明确

适合人群

  • 骑行/跑步/铁三运动员使用TrainingPeaks平台记录训练
  • 需要批量导出数据进行分析的数据驱动型用户
  • 希望将TrainingPeaks数据整合到自建看板或报告系统的开发者
  • 对Python依赖安全性敏感、偏好标准库方案的技术用户

常规风险

1. 凭证泄露风险:Cookie值相当于临时密码,若被截获可导致账户访问。建议仅在可信环境使用,避免提交到版本控制。
2. 本地文件残留~/.trainingpeaks/目录包含敏感凭证,共享设备时需注意清理。

3. API限流风险:尽管有150ms节流,高频查询仍可能触发TrainingPeaks服务端限制。

4. 数据同步延迟:API数据可能存在数小时延迟,不适合实时竞赛场景。

技术评估

安全认证报告显示该Skill获得S级(90分)评价,在静态代码分析、依赖审计、网络流量分析等维度均表现优秀。代码结构清晰,仅连接tpapi.trainingpeaks.com官方域名,无数据外泄风险。两项低风险标记(本地配置文件写入、环境变量读取)均为功能必需,已验证无害。

trainingpeaks 内容

scripts文件夹
手动下载zip · 9.8 kB
tp.pytext/plain
请选择文件