用 Node.js 给汽水音乐做了个本地辅助服务
缘起
用汽水音乐 PC 端的时候,有几个小痛点一直没解决:
推荐流里经常混着试听片段,听着正起劲突然切了
歌单里躺着一些已经下架的僵尸歌曲,点了没反应
想把喜欢的歌缓存到本地,客户端没这个功能
于是动手做了个本地辅助服务,跑在本机,浏览器打开就能用。
它能做什么
推荐流:过滤掉试听片段,推荐里永远是完整歌曲
歌单管理:浏览、播放、一键清理僵尸歌曲
播放控制:支持进度条拖动、上一首/下一首、自动切歌
歌词同步:滚动高亮,点歌词跳转
封面主色:提取封面主色调,生成渐变背景
本地缓存:解密后的音频存在本地,默认保留最近 100 首
技术实现
基于官方客户端 app.asar 解包出的原生模块(签名、解密)
所有请求走官方公开接口,不修改、不破解任何机制
登录态来自本机已登录的客户端数据库
音频解密用 ffmpeg 在本地完成
缓存策略
音频解密后缓存在本地,默认保留最近 100 首,自动清理更早的。如果你的磁盘空间充足,可以调大上限——听歌几个月,就能积累成一个几千首的私人曲库,而且已经解密,随时可以离线播放。
界面
窗口没做得特别精致,但功能都在。前端是单文件 index.html,没有框架、没有构建步骤,改起来门槛很低。欢迎感兴趣的兄弟贡献 UI。
项目地址
https://gitee.com/ali-1998/soda-mtools-code-art
项目基于 MIT 协议开源,仅供个人技术研究与学习使用,禁止任何商业用途。
README 里有完整的部署文档,包括解包流程、依赖安装、ffmpeg 配置、cookies 提取等。感兴趣的话可以去看看,欢迎 star、issue、PR。