Spotube 数据缓存与存储位置——哪些数据在本地、哪些会上传
总览表
Spotube 的数据分两类:纯本地和可能上传到外部服务(仅当你主动开启)。
纯本地(永远不会离开你的设备)
| 数据 | 存储格式 | 位置 |
|---|---|---|
| 播放列表、收藏、歌单 | SQLite(Drift 包) | 见下方各平台路径 |
| 插件 .smplug 文件 | ZIP | 见下方各平台路径 |
| 音频缓存(流式播放的临时缓冲) | 文件系统 | 临时目录,自动清理 |
| 下载的曲目(离线) | MP3 / FLAC / AAC 等 | 你指定的下载目录 |
| 主题、偏好、EQ 设置 | shared_preferences | 见下方各平台路径 |
| 歌词缓存 | 文件系统 | 临时目录 |
可能上传到外部服务(主动开启才会)
| 数据 | 上传到 | 触发条件 |
|---|---|---|
| Spotify OAuth token | 只在你设备本地,Spotube 不做中间转发 | 连接 Spotify 账号 |
| 播放记录 | ListenBrainz / Last.fm | 主动启用 scrobble |
| 插件 HTTP 请求 | 插件连接的音乐服务(Spotify / YouTube / MusicBrainz 等) | 插件正常工作 |
Spotube 自身不做任何遥测上传——没有崩溃报告、没有使用统计、没有分析。
各平台路径
Windows
Spotube 数据目录: %APPDATA%\Spotube\
├── preferences # shared_preferences
├── spotube.db # SQLite 数据库(播放列表、收藏)
├── plugins\ # 插件目录
├── cache\ # 临时缓存(自动清理)
└── logs\ # debug log(手动导出)
Spotube 下载目录(默认):%USERPROFILE%\Music\Spotube Downloads\
macOS
Spotube 数据目录: ~/Library/Application Support/Spotube/
├── preferences
├── spotube.db
├── plugins/
├── cache/
└── logs/
Spotube 下载目录(默认):~/Music/Spotube Downloads/
Linux
Spotube 数据目录: ~/.local/share/spotube/
├── preferences
├── spotube.db
├── plugins/
├── cache/
└── logs/
Spotube 下载目录(默认):~/Music/Spotube Downloads/
Flatpak(Linux)
Flatpak 沙箱隔离:
Spotube 数据目录: ~/.var/app/com.github.KRTirtho.Spotube/data/spotube/
Spotube 配置目录: ~/.var/app/com.github.KRTirtho.Spotube/config/spotube/
Flatpak 默认只能访问 ~/Music、~/Downloads、~/Documents。如果想让 Spotube 扫描其他目录,需要在 Flatpak Override 里放开。
Android
Spotube 数据目录: /data/data/oss.krtirtho.spotube/
├── files/
│ ├── plugins/
│ └── downloads/
├── databases/spotube.db
└── cache/
Android 11+ 的 Scoped Storage 限制下,Spotube 可以访问 ~/Music/Spotube Downloads/(系统音乐目录)。
iOS
Spotube 数据目录: /var/mobile/Containers/Data/Application/<UUID>/Documents/
├── plugins/
├── downloads/
└── spotube.db
iOS 沙箱隔离,Spotube 只能访问自己的容器目录。下载的曲目可以在"文件"App → "Spotube" 文件夹里看到和导出。
清理缓存 vs 清空数据
Spotube 设置 → Data Management 有两个按钮:
| 操作 | 效果 | 能否恢复 |
|---|---|---|
| 清理缓存 | 删除临时文件(音频缓冲、歌词缓存、封面图缓存) | 自动重建,无害 |
| 清空数据 | 删除一切——播放列表、收藏、插件、下载曲目、所有偏好 | 不可恢复(除非有备份) |
建议只清缓存,清空数据是"出厂重置"级别的操作。
备份建议
只备份播放列表和收藏
Spotube 没有内置"备份 / 恢复"功能。手动备份:
- 关掉 Spotube(防止数据库写入中拷贝)
- 复制
spotube.db文件到备份位置 - 复制
preferences文件(可选,保留主题设置)
恢复:新设备装 Spotube → 关掉 → 把备份文件拷回原位置 → 启动。
全量备份
如果你本地有大量下载的曲目,同时备份下载目录即可。
OAuth token 存储安全
Spotube 用 flutter_secure_storage 包存储 OAuth token:
| 平台 | 底层存储 |
|---|---|
| iOS | Keychain(系统加密) |
| Android | KeyStore(硬件安全) |
| Windows | DPAPI(数据保护 API,Windows 原生) |
| macOS | Keychain |
| Linux | libsecret(GNOME Keyring / KWallet) |
token 在磁盘上加密存储,明文不会出现在 spotube.db 里。Spotube 进程运行时在内存里解密,退出后即清除。