为什么又盯上本地音乐播放器
NAS 上堆了几百 G 的无损音乐,之前一直靠带 Subsonic 协议的客户端来听。这类方案有个绕不开的前提:你得先维护一个媒体服务端。对只想安安静静听歌的人来说,多跑一个常驻服务、配账号、调转发,成本不低。
最近刷到个新项目 AMUS,定位很直接——纯本地、零服务端、完全离线的音乐播放器。它不连接任何流媒体,不依赖后端,扫描你本地的文件夹就能用。正好戳中”我就想播自己 NAS 上文件”这个需求。项目还很年轻(2026 年 6 月底才建仓),但迭代挺勤,值得记一笔。

AMUS 是什么
AMUS 是一个用 SvelteKit + Tauri 打包的桌面音乐播放器,核心卖点是隐私和轻量。它假设你拥有自己的音乐库,所有文件留在本地,播放器只做索引和播放,不做任何上传。
技术栈上它没选 Electron 那种全家桶,而是用 Tauri(Rust 内核 + 系统 WebView),安装包和内存占用都比传统桌面应用小一圈。音频解码走 rodio,支持 MP3、FLAC、WAV、OGG、M4A、AAC、OPUS 这些常见格式。
实际能干什么
翻了一遍功能清单,几个点对我比较有用:
- 增量扫描 + 实时监听:首次扫描提取元数据和封面,之后文件增删改由文件监听器自动同步,不用手动刷新库。
- 播放队列灵活:支持”播完这首歌后播”、拖拽排序、随机、循环,队列空了还会根据歌手/专辑匹配相似曲目自动补位。
- 后台播放:关掉窗口从系统托盘继续放,还有迷你播放器(小窗显示封面和进度)。
- 模糊搜索:基于 Fuse.js 的客户端搜索,支持
/tracks/artists这类斜杠过滤语法。 - 播放统计:播放次数、收听时长、连续打卡、格式分布、时段热力图——对喜欢看自己听歌习惯的人算彩蛋。
- 系统媒体控件:接入 MPRIS / SMTC / Now Playing,锁屏和键盘媒体键都能控。

怎么跑起来
目前没看到官方预编译安装包页面(release 里主要是源码 tag),自己构建是最直接的路:
# 需要 Node 环境(bun 也行,项目用 bun.lock)
git clone https://github.com/Naitik4516/AMUS
cd AMUS
npm install
npm run tauri dev # 开发模式,会拉起 Rust 后端并起桌面窗口
# 打包为各平台安装文件:
npm run tauri build
Arch 用户已经有人打了 AUR 包(amus-git),省去手动编译。macOS / Windows / Linux 都能用,因为 Tauri 本身是跨平台的,但首次构建要装对应平台的 Tauri 依赖(Rust 工具链、各系统 WebView)。
有什么坑
老实说,这个项目还很早期:建仓才两个月,star 数才 20 出头,0 fork,issue 也是 0。这意味着:
- 别指望完善文档和社区支持。README 写得清楚,但遇到问题大概率得自己看代码。
- 没有官方 UI 截图。本文配图来自仓库页面和品牌素材,不是应用实拍——早期项目常这样,验收前建议自己 clone 跑一次。
- 构建链偏重。Tauri 首次 build 要拉 Rust 依赖,在 NAS 那种 ARM 小核上编译会比较慢,最好在桌面机先编译好再拷过去。
- 艺术家封面靠外部搜索。README 提到会自动抓 Bing / DuckDuckGo 的艺人头像,这一步需要联网,介意隐私的话得注意(纯音频播放本身不联网)。

值不值得试
如果你跟我一样,音乐全在本地、不想为多听个歌再养一个服务端,AMUS 的思路是对的。它把”拥有自己的库”这件事做轻了:克隆即扫、关窗即后台、统计白送。
但鉴于它太新,我的建议是当玩具而非主力。先在桌面机 clone 跑通,确认扫描和播放符合预期,再考虑往常开机的设备放。等它 star 涨过几百、release 里出现预编译包,再转日常使用更稳妥。
同样定位的还有 Feishin(基于 Subsonic,需要 Navidrome / Jellyfin 后端),两者取向完全不同:一个要你有一套媒体服务,一个只要你有一堆文件。按自己的基础设施现状选就行。