本项目把 K50 手机上「酷我音乐 Ver.12.2.2.4」下载的歌曲,自动汇入 NAS 音乐库。酷我登录后可会员解锁并下载无损 FLAC(质量码 2000),文件默认落在 /sdcard/Download/KuwoMusic/music/,命名为 <歌名>-<歌手>-<rid>-<质量码>.<ext>。
部署在 .164 xiejun-web 的流水线由 /root/kuwo_pull.py 和 systemd timer 组成,每 2 分钟拉取一次,把文件导入 /nas/音乐,按 rid 去重,从 lrclib.net 获取歌词并写成同名 .lrc,随后删除设备副本,最后由 Navidrome 自动扫描入库。
这样解决的是手动拷贝、重复导入、歌词缺失和手机空间占用等问题。现状是服务已部署,实测两首无损 FLAC 均已入库并带歌词,设备目录已清空。注意 MIUI 可能杀酷我后台,下载时需保持 App 在前台;大批量下载仍建议使用 API 直连工具。
功能
- 每 2 分钟自动从设备下载目录拉取到
/nas/音乐 - 支持酷我会员解锁后的无损 FLAC 下载,质量码 2000
- 按 rid 去重,已入库歌曲跳过并清理设备副本
- 从 lrclib.net 自动获取歌词,优先同步歌词并回落纯文本,生成同名
.lrc - 默认导入后删除设备副本,缓解手机存储压力
- 对接 Navidrome,定时扫描或重启触发入库
技术栈
使用 / 部署教程
以下步骤基于现有部署记录整理,设备连接方式与路径若不同,请按实际环境调整。
- 准备手机端:在 K50 安装酷我音乐 Ver.12.2.2.4,登录账号解锁会员;保持默认下载目录
/sdcard/Download/KuwoMusic/music/。下载过程中让 App 保持前台,避免 MIUI 杀后台导致中断。 - 确认 NAS 脚本:在 .164 xiejun-web 上确认
/root/kuwo_pull.py存在,并具备读取手机下载目录、写入/nas/音乐的权限;按需检查脚本中的来源与目标路径。 - 启用定时任务:确认
/etc/systemd/system/kuwo-pull.service与kuwo-pull.timer已就位,timer 每 2 分钟触发,flock 防重入。执行systemctl daemon-reload,再执行systemctl enable --now kuwo-pull.timer。 - 查看运行状态:用
journalctl -u kuwo-pull.service -n 50查看日志;也可手动执行python3 /root/kuwo_pull.py立即拉取。需要保留设备副本时加--keep,不抓歌词时加--no-lyric。 - 验证入库:检查
/nas/音乐是否出现 FLAC 与同名.lrc,设备目录是否已清空;Navidrome 默认每 1 小时扫描,若要立即生效可执行docker restart navidrome触发启动扫描。 - 批量下载:酷我 App 只能逐首或逐歌单下载,大批量建议使用
tools/kuwo_batch_dl.py直连 API。
常见问题
下载完成后为什么没有进 NAS?
先确认酷我 App 在前台完成下载,流水线每 2 分钟运行一次;未完成的临时文件不会被导入。可查看 journalctl -u kuwo-pull.service -n 50 或手动执行脚本排查。
如何保留手机上的歌曲副本?
运行 python3 /root/kuwo_pull.py --keep 可保留设备副本;默认行为是导入后删除设备副本。
歌词是怎么配的?
歌词来自 lrclib.net,优先获取同步歌词,回落纯文本,并写成同名 .lrc。资料显示酷我/QQ 歌词接口在 .164 上不可用。
入库后 Navidrome 没有立刻显示怎么办?
Navidrome 配置为每 1 小时扫描一次;如需立即生效,执行 docker restart navidrome 触发启动扫描。
注意
- MIUI 会杀酷我后台,下载过程中保持 App 在前台,否则下载中断;未完成的临时文件不会被导入。
- 手机存储仅剩 16G,流水线默认导入后删除设备副本;需要保留时使用
--keep。 - 酷我 App 只能逐首或逐歌单下载,大批量建议使用 API 直连工具
tools/kuwo_batch_dl.py。

评论
加载中…