Garmin 中国区活动同步到国际区的一个简单实现方案

一、背景

使用佳明(Garmin)国行账号时,会遇到一个比较常见的问题:
中国区账号无法直接与 Strava等国际平台进行官方同步。

这会导致运动数据被分散在不同生态中:

  • 中国区 Garmin Connect

  • 国际区 Garmin Connect

  • Strava 等第三方平台

如果希望后续统一使用国际区账号与第三方平台同步,就需要一种方式:

👉 将中国区账号中的活动记录同步到国际区账号。

目前已经有开源项目(如 dailysync)实现了这一思路。

在参考其实现方式后,正巧最近AI变成比较火,自己用AI实现了一个更轻量的脚本版本,用于完成最核心的同步功能。

项目地址:
https://github.com/hh997y/hh997y-garmin_sync_python


二、总体思路

该项目的目标非常明确:
只做一件事:将 Garmin 中国区账号的活动记录,同步到 Garmin 国际区账号。

整体流程如下:

  1. 使用中国区账号登录 Garmin Connect 接口

  2. 获取最近的活动列表并下载对应的 .fit 文件

  3. 使用国际区账号登录上传接口

  4. 将下载的活动文件上传至国际区账号

  5. 对已同步过的活动进行记录,避免重复上传

同步完成后,即可使用 Garmin 国际区账号与 Strava 等平台进行官方同步。


三、功能特性

目前实现的主要功能包括:

  • 支持从中国区账号下载活动记录(fit 文件)

  • 支持将活动文件上传到国际区账号

  • 已上传活动记录缓存,避免重复同步

  • 支持多种运行模式:

    • download_only:仅下载活动

    • upload_only:仅上传本地活动文件

    • full:下载 + 上传

  • 支持两种登录方式:

    • 使用已有 session cookie

    • 使用 Playwright 自动登录获取 cookie


四、与现有方案的关系

该项目的实现思路参考了开源项目:

相比之下,本项目的特点是:

  • 数据安全,不用对外提供佳明账号密码

  • 功能更简单聚焦,仅处理活动记录同步

  • 不包含完整的 Web UI 或数据库

  • 更偏向脚本工具形态,便于按需运行或二次开发

对于希望快速获得完整解决方案的用户,dailysync 是一个成熟方案;

对于希望理解原理或进行定制化处理的用户,可以参考本项目的实现方式。


五、使用门槛与适用人群

该项目并非面向普通终端用户,而是更适合以下人群:

  • 熟悉 Python 基本使用方式

  • 能够修改配置文件(YAML)

  • 能理解 Cookie / Session 的基本概念

  • 能自行排查运行中的报错信息

不建议以下场景使用:

  • 完全不接触命令行或代码环境的用户

  • 期望一键图形界面操作的用户


六、项目结构说明

项目主要结构如下:

  • run.py:程序入口

  • config.yaml:配置文件(账号登录方式、同步模式等)

  • src/garmin_sync/:核心同步逻辑

  • state/uploaded.json:已同步活动记录缓存

程序通过读取 config.yaml 控制运行模式与认证方式。


七、实现初衷

实现该项目的主要动机包括:

  • 避免手动导出 / 导入 .fit 文件

  • 解决国区与国际区数据割裂的问题

  • 便于后续通过国际区账号与 Strava 等平台进行统一同步

  • 学习与实践 Garmin Connect 接口相关调用逻辑


八、项目地址

项目仓库地址:

👉 https://github.com/hh997y/hh997y-garmin_sync_python

仓库 README 中包含:

  • 配置说明

  • 登录方式示例

  • 常见运行模式

  • 已同步缓存机制说明

可根据自身需求进行二次开发或调整。

相关推荐
leisoo809736 分钟前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan20221 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
chunmiao30322 小时前
OpenAI暂缓发布Astra模型:首个网络安全“关键“风险级别
ai编程
plainGeekDev3 小时前
Loop Engineering 入门:告别一句句指挥 AI
ai编程·claude
金銀銅鐵3 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
kyriewen4 小时前
Claude Code后天起默认Auto模式了——我第一时间改了这6个设置
前端·ai编程·claude
花椒技术4 小时前
一个人已经有 Agent 了,我们为什么还要建设统 Agent 平台
人工智能·agent·ai编程
Python大数据分析@5 小时前
使用大模型MCP采集数据,爬虫已经无门槛
python·网络爬虫
仙逆GPT5 小时前
ChatGPT、Codex实战:Sol、Terra、Luna怎么选?Reasoning不是越高越好
ai编程·codex·chatgptplus·gpt5.6·codex教程
quantdash_cc5 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash