多设备歌单同步的正确姿势
为什么三套产品线数据不互通
Listen 1 的四个产品线(桌面版、插件版、移动端、网页版)是独立仓库独立维护的,它们:
- 各自使用不同的存储方式(Electron localStorage / Chrome 扩展 storage / React Native AsyncStorage / Python 文件)
- 没有后端服务器集中托管用户数据
- 各版本的数据格式可能不完全兼容
这意味着:你在电脑桌面版创建的歌单,手机端看不到;Chrome 插件的收藏列表,Firefox 插件也看不到。
同步方案一:GitHub Gist(推荐)
这是 Listen 1 官方提供的跨产品线同步方式,详见「GitHub Gist 歌单备份」页面。核心步骤:
- 在每台设备上都用 GitHub 账号授权
- 在主力设备上创建 / 修改歌单后,点「一键备份」
- 在其他设备上,点「恢复」拉取最新数据
- 下次在新设备上修改后,重复流程
这套方式对桌面版和移动端都有效。
同步方案二:手动导入导出
如果不想绑定 GitHub 账号,或只需要偶尔在两台设备之间传输歌单:
导出
- 在 Listen 1 设置 → 数据管理区域
- 选择「导出歌单」
- 生成一个 JSON 文件,保存到本地
导入
- 在另一台设备的 Listen 1 设置 → 数据管理区域
- 选择「从 JSON 文件导入」
- 选择之前导出的文件
- 导入后的歌单出现在「创建的歌单」列表末尾
手动方式适合一次性传输少量歌单,不适合频繁多设备同步。
同步方案三:U盘 / 云盘中转
最朴素的方案:
- 用「手动导出」导出 JSON 文件
- 复制到 U 盘或上传到网盘
- 在另一台设备上下载并「手动导入」
或者直接复制 Listen 1 的本地数据目录(不推荐,因为不同版本的数据格式可能有差异)。
跨平台版本兼容性
| 源版本 | 目标版本 | 能否互传 |
|---|---|---|
| Electron 桌面版 | Electron 桌面版 | 支持(同版本) |
| Electron 桌面版 | Chrome 插件 | 通过 Gist 支持 |
| Electron 桌面版 | 移动端 | 通过 Gist 支持 |
| Chrome 插件 | Firefox 插件 | 通过 Gist 支持 |
| Python 网页版 | 其他版本 | 需要手动导出 JSON |
同步频率建议
- 单设备为主:一周备份一次足够
- 双设备交替使用:每次在一台设备上修改歌单后立即备份,切到另一台设备先恢复再用
- 频繁改歌单:可以开启自动备份(部分版本支持 30 分钟周期)
同步冲突处理
如果两台设备同时修改歌单并分别备份到 Gist,后一次备份会覆盖前一次。处理策略:
- 只在一台主力设备上修改歌单,其他设备只读
- 或修改前先在目标设备上恢复,确认拿到最新 Gist 再操作
- 如果确实产生冲突,从 Gist 的版本历史中手动恢复较旧的版本,合并后重新备份