Spotube 下载离线曲目——带元数据标签、并行分块、v5.1 速度升级
Spotube 能下载什么
Spotube 可以把正在播放或在播放列表里的曲目下载到本地,之后离线也能听。下载的曲目:
- 保留元数据标签(曲目名、艺术家、专辑、封面图)——Spotube 用 metadata_god 包写入 MP3/AAC/FLAC 的 ID3 标签
- 保留歌词(从 LRCLib 一起下载,作为
.lrc文件或内嵌标签) - 保存为原始格式——MP3 / AAC / FLAC / Opus,Spotube 不做格式转换
- 存储到你指定的目录(默认在应用数据目录的
Downloads/子文件夹)
下载流程
- 播放列表或播放页 → 单曲右键/长按 → "下载"
- Spotube 调用 AudioAPI 插件拿到音频流 URL
- 并行分块下载(v5.1.0 新特性):把音频分成多个块,同时用多个 HTTP 连接下载
- 下载完成后,用 metadata_god 写入元数据标签
- 封面图从 MetadataSearchAPI 拿到的专辑封面 URL 下载,嵌入到音频文件的 ID3 标签里
- 同时从 LyricsAPI 拿歌词,存为同名
.lrc文件 - 在播放列表里把该曲目标记为"已下载"(绿色向下箭头图标)
v5.1.0 下载管理器升级
v5.1.0 重写了下载管理器:
| 变化 | 效果 |
|---|---|
| 并行分块下载 | 多个 HTTP 连接同时下载不同段,速度提升 2~5 倍 |
| 单连接流式(替代 chunked streaming) | 之前是边下边缓冲,v5.1 改为建立一条稳定 HTTP 连接,减少卡顿和超时 |
| 多任务队列 | 同时可以排队下载多首(之前只能一首一首),后台不阻塞 UI |
| 进度条优化 | 每个下载任务有独立进度条,总下载数一目了然 |
离线播放
下载完成的曲目:
- 在播放列表里会有绿色下载图标
- Spotube 自动把它标记为"可离线"
- 没有网络时,Spotube 会优先播放本地文件,不会尝试连音频源
- 下载目录可以在设置里自定义(默认位置对每个平台不同)
下载策略设置
Spotube 设置里可以配置:
- 默认下载格式:跟随音源 / 固定 MP3 / AAC / FLAC
- 默认码率:跟随音源 / 320kbps / 160kbps
- 下载并发数:1~10(默认 3)
- Wi-Fi 下才下载:移动数据连接时跳过下载
版权提示
Spotube 本身不检查音频流的版权状态。用户需要对自己下载的内容负责——Spotube 只是把音频源插件返回的数据原样存到本地,和浏览器缓存视频是同一个性质。在合法下载范围内使用。
下载异常排查
下载后没带封面
某些音源的音频流不自带封面图,Spotube 会从 MetadataSearchAPI 的元数据里拿专辑封面再嵌入。如果元数据插件也没返回封面,就只能是空。建议同时装 Spotify Metadata(封面齐全)。
下载卡住不动
通常是分块下载时某个连接超时。v5.1.0 有自动重试机制(每个块重试 3 次)。仍卡住:
- 切到其他音频源再试
- 检查网络连接
- 重启 Spotube(会恢复未完成的下载队列)
下载后 ID3 标签乱码
metadata_god 包对中文和非 ASCII 字符的处理依赖 UTF-8 编码。如果元数据插件返回的 artist/title 里有乱码,写入标签时也会乱码。解决方法:
- 换元数据插件(比如 MusicBrainz 对中文曲目支持更好)
- 手动用 MP3tag 或 foobar2000 修正标签