strava-cycling-coach

🚴 专业骑行数据智能分析教练

基于 Strava API 的本地骑行分析工具,安全 OAuth 认证自动追踪运动表现,为骑行者提供专业功率、心率及训练负荷洞察。

收藏
8.1k
安装
2.4k
版本
v1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

Strava Cycling Coach 是一款面向骑行爱好者的本地数据分析工具,通过与 Strava 官方 API 集成,提供深度运动表现分析和自动训练监控功能。

核心用法方面,用户首先需在 Strava 开发者平台创建应用获取 Client ID 和 Secret,通过 OAuth 2.0 完成授权后,即可使用提供的 Python/Bash 脚本访问个人骑行数据。工具支持获取最新骑行记录、分析特定活动详情,并可配置 cron 定时任务实现每 30 分钟自动检查新骑行,通过 Telegram 推送分析报告。用户可通过命令行参数指定 FTP(功能性阈值功率)等个性化指标,生成包含功率曲线、心率区间、训练负荷(TSS)等专业数据的详细报告。

显著优点体现在多维度:首先,完全本地化部署确保敏感运动数据不出境,配置文件采用 600 权限严格保护;其次,分析维度专业且全面,涵盖功率、心率、训练强度因子(IF)、TSS 等竞技骑行核心指标,支持与个人历史最佳表现对比;第三,自动化监控能力突出,可无缝集成到 Linux/macOS 的 cron 系统,实现训练日志的无人值守追踪;第四,代码结构清晰,使用标准库和广泛验证的 requests 库,无黑盒依赖。

潜在缺点与局限性亦需正视。作为 T3 来源的个人项目,长期维护和更新承诺存疑,且缺乏官方技术支持。配置方面对非技术用户门槛较高,需熟悉命令行操作、环境变量设置及 cron 任务管理。Strava API 存在严格的调用限制(100 请求/15 分钟,1000 请求/天),高频监控可能触发限流。此外,目前仅支持 Strava 平台,无法整合 Garmin Connect、Zwift 等其他主流骑行数据源。

适合的目标群体主要包括:严肃训练的公路车/铁三运动员,需要基于功率和心率数据进行周期化训练分析;数据驱动的健身爱好者,希望通过量化指标追踪长期体能趋势(CTL/ATL);以及具备基础 Linux/macOS 命令行知识,重视数据隐私且愿意自建分析环境的科技从业者。

使用风险方面,除 T3 来源的代码信任风险外,用户需妥善保管 OAuth Token 和 API 凭证,避免配置文件泄露导致 Strava 账户被恶意访问。自动监控脚本的长期运行可能产生累积 API 调用,需注意 Strava 的日限额。依赖的 Python requests 库需用户自行维护更新,存在供应链安全风险。建议定期检查日志文件监控异常,并在不再使用时及时撤销 Strava 应用授权。

安全解读

核心用法

Strava Cycling Coach 是一款基于官方 Strava API 的本地化骑行数据分析工具,专为追求科学训练的骑行爱好者设计。用户通过 OAuth 授权后,可自动同步 Strava 活动数据至本地,进行深度性能分析。

主要功能模块:

  • 实时数据获取:通过 /athlete/activities/activities/{id} 等端点拉取骑行记录
  • 多维指标分析:功率(平均/标准化/峰值/变异性指数)、心率区间分布、TSS训练负荷、强度因子计算
  • 自动监控:支持 cron 定时任务(30分钟间隔),新骑行上传后自动触发分析
  • 趋势追踪:对比历史表现、识别个人纪录突破、监控长期健身进展

技术实现亮点:

  • 纯 Python 标准库 + requests 构建,零第三方依赖
  • 本地配置文件存储于 ~/.config/strava/,权限严格限制为 600
  • HTTPS 全链路加密,TLS 1.2+ 保障传输安全

显著优点

1. 数据主权归属用户:所有敏感数据(OAuth 令牌、活动记录)本地存储,非 SaaS 模式,避免云端服务数据滥用风险
2. 官方 API 合规调用:严格遵循 Strava API 速率限制,无爬虫或反爬行为,账号安全风险极低

3. 自动化训练闭环:结合 Telegram Bot 推送,实现「骑行结束→自动分析→即时反馈」的无缝体验

4. 开源可审计:540 行代码、9 个文件,结构清晰,便于技术用户自定义分析逻辑

潜在缺点与局限性

  • 配置门槛较高:需自行创建 Strava API Application、完成 OAuth 流程、设置 cron 任务,非技术用户上手困难
  • 功能依赖外部服务:Strava API 限流或服务中断将直接导致功能失效,离线缓存机制较为基础
  • 隐私保护待加强:OAuth 令牌以明文 JSON 存储,虽设文件权限仍建议迁移至系统密钥环
  • 分析维度有限:专注骑行场景,不支持跑步、游泳等多运动类型;缺乏 AI 驱动的个性化训练建议

适合人群

  • 数据驱动型骑行者:拥有功率计、心率带等设备,关注 TSS、IF、NP 等高阶训练指标
  • 隐私敏感用户:不愿将完整运动数据授权给第三方商业分析平台
  • 自托管爱好者:具备基础 Linux/Shell 操作能力,偏好本地运行的自动化工具链
  • 教练与运动员:需要批量导出历史数据、进行周期性训练负荷分析的严肃训练者

常规风险

| 风险类别 | 具体描述 | 缓解建议 |
|---------|---------|---------|
| 凭证泄露 | OAuth 令牌明文存储于本地 JSON | 启用全盘加密,定期检查 `~/.config/strava/` 权限 |
| API 依赖 | Strava 服务变更或封号导致数据中断 | 定期导出备份,关注 API 弃用公告 |
| 误操作风险 | FTP 等关键参数输入错误影响计算 | 建议添加参数范围校验(50-500W) |
| 通知渠道安全 | Telegram Bot Token 若泄露可能被滥用 | 使用私密聊天频道,定期轮换 Token |

strava-cycling-coach 内容

references文件夹
scripts文件夹
手动下载zip · 14.7 kB
api.mdtext/markdown
请选择文件