互联网时代,数据为王,君不见多少巨头为了数据争得头破血流。虽说「理越辩越明」,可随着巨头们火热的诉讼,作为数据的直接生产者的最终用户,我们的权力反而被渐渐淡化。对在线服务的天生不信任的我一直秉持的原则是「在你手里的才是你的」。很遗憾的是,我入门初期用来记录骑车的软件「小米运动」并不符合这个原则。本着只折腾一次的原则,趁着这次卖车的间隙,我把“封闭”的「小米运动」里的记录全部导到相对开放的「Strava」了。这个帖子记录一下这个过程。
Round-1 「小米运动」自带的“导出”功能
以「小米运动 导出 数据」为关键词搜索,可以发现有一系列的帖子。其中有一篇提到了官方有提供一个导出的入口:
To export your data, sign in to mifit.huami.com/t/account_mifit or api-mifit.huami.com/t/account_mifit and select
Export data
.
跟随文中的指示很快我就在邮箱中收到了我想要的数据。
这么简单就结束了?显然不是!
「小米运动」发给我的是一个压缩包,解压后发现,运动记录被放在一个.csv
文件里,只记录了时间、速度、距离这些基本信息,心率、GPS全都没有!
从「小米运动」APP里打开记录,心率、GPS数据一览无余,并且更换设备登陆后依然可见。种种迹象表明这些数据是被存在服务器上的。可是导出的却只有一些基础的不能再基础的信息了,我不能接受
Round-2 「Mi-Fit-and-Zepp-workout-exporter」导出
在Github上找到了一个「Mi-Fit-and-Zepp-workout-exporter」的项目,它提供了一个Python文件用于导出
A Python script which allows users to export workout data from Mi Fit and Zepp applications.
浏览代码后发现它可以将「小米运动」所用的数据格式转化为.gpx
文件,这是Strava接受的导入格式,可以同时记录GPS、心率、距离。
按照README里的链接的教程,很快就完成了。上面显示我在「小米运动」上一共有200条记录。
Round-3 导入Strava
Strava官网提供了一个上传.gpx
的接口,可批量上传25条记录,但大小不能超过25MB。比较遗憾的是找到的批量上传脚本都用不了,最后只好手动上传。
我有一段时间同时使用了Strava和「小米运动」,导入后需要进行去重;对于无法导出为.gpx
的数据则在Strava中手动添加记录。三个小时后所有的数据就整理出来了:
好家伙,原来我骑了这么远😮 「小米运动」里“流离失所”的记录并入主仓库,我宣布数据导出大作战成功😉