把歌单、收藏、播放统计同步到自己的 GitHub 私有仓库
为什么选 GitHub
NeriPlayer 的同步策略刻意保持去中心化:
- 数据写入用户自己控制的 GitHub 仓库
- 不经过项目维护者的中心化服务器
- 每个用户拥有独立的同步空间
GitHub 私有仓库免费提供稳定的 Key-Value 存储能力,适合存放 NeriPlayer 的元数据同步快照。
配置步骤
- 在 GitHub 创建一个新的私有仓库(已有仓库也可以,但独立仓库更清晰)
- 在 NeriPlayer 设置的「GitHub 同步」中输入:
- 仓库所有者
- 仓库名称
- 个人访问令牌(PAT,需要
repo权限)
- 选择同步内容(歌单、收藏、最近播放、播放统计、删除记录)
- 测试连接成功后启用
首次配置时应用内也可以帮你一键创建私有仓库。
同步的内容
| 内容 | 说明 |
|---|---|
| 本地歌单 | 歌单结构和歌曲列表 |
| 收藏歌单 | 各平台收藏的歌单 |
| 最近播放 | 最近 N 首播放记录 |
| 播放统计 | 歌曲维度的播放次数、累计时长、每日桶 |
| 删除记录 | 已删除的歌单和歌曲记录(用于冲突合并) |
同步快照读取时会兼容旧字段和异常缺字段数据,过滤缺少可解析歌曲身份的记录。
同步时机
- 手动同步:设置页的「立即同步」按钮
- 延迟同步:触发变更后延迟一段时间批量写入
- 周期同步:WorkManager 定时后台同步
多设备同步
同一 GitHub 仓库可以在多台设备上配置。同步合并策略:
- 播放统计:全量累计 + 每日桶按日期相加
- 歌单:按版本化操作合并(双方同时修改歌单结构时保留各自意图)
- 删除记录:跨设备同步删除事件(A 设备删除某歌单,B 设备同步后也会删除)
凭据安全
GitHub PAT 保存在应用内部的加密凭据存储区,不会明文写入数据库或同步快照。