AMUS:把本地音乐库做成纯离线的轻量播放器

为什么又盯上本地音乐播放器

NAS 上堆了几百 G 的无损音乐,之前一直靠带 Subsonic 协议的客户端来听。这类方案有个绕不开的前提:你得先维护一个媒体服务端。对只想安安静静听歌的人来说,多跑一个常驻服务、配账号、调转发,成本不低。

最近刷到个新项目 AMUS,定位很直接——纯本地、零服务端、完全离线的音乐播放器。它不连接任何流媒体,不依赖后端,扫描你本地的文件夹就能用。正好戳中”我就想播自己 NAS 上文件”这个需求。项目还很年轻(2026 年 6 月底才建仓),但迭代挺勤,值得记一笔。

AMUS GitHub 仓库

AMUS 是什么

AMUS 是一个用 SvelteKit + Tauri 打包的桌面音乐播放器,核心卖点是隐私和轻量。它假设你拥有自己的音乐库,所有文件留在本地,播放器只做索引和播放,不做任何上传。

技术栈上它没选 Electron 那种全家桶,而是用 Tauri(Rust 内核 + 系统 WebView),安装包和内存占用都比传统桌面应用小一圈。音频解码走 rodio,支持 MP3、FLAC、WAV、OGG、M4A、AAC、OPUS 这些常见格式。

实际能干什么

翻了一遍功能清单,几个点对我比较有用:

  • 增量扫描 + 实时监听:首次扫描提取元数据和封面,之后文件增删改由文件监听器自动同步,不用手动刷新库。
  • 播放队列灵活:支持”播完这首歌后播”、拖拽排序、随机、循环,队列空了还会根据歌手/专辑匹配相似曲目自动补位。
  • 后台播放:关掉窗口从系统托盘继续放,还有迷你播放器(小窗显示封面和进度)。
  • 模糊搜索:基于 Fuse.js 的客户端搜索,支持 /tracks /artists 这类斜杠过滤语法。
  • 播放统计:播放次数、收听时长、连续打卡、格式分布、时段热力图——对喜欢看自己听歌习惯的人算彩蛋。
  • 系统媒体控件:接入 MPRIS / SMTC / Now Playing,锁屏和键盘媒体键都能控。

AMUS Releases 页面

怎么跑起来

目前没看到官方预编译安装包页面(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 提交历史

值不值得试

如果你跟我一样,音乐全在本地、不想为多听个歌再养一个服务端,AMUS 的思路是对的。它把”拥有自己的库”这件事做轻了:克隆即扫、关窗即后台、统计白送。

但鉴于它太新,我的建议是当玩具而非主力。先在桌面机 clone 跑通,确认扫描和播放符合预期,再考虑往常开机的设备放。等它 star 涨过几百、release 里出现预编译包,再转日常使用更稳妥。

同样定位的还有 Feishin(基于 Subsonic,需要 Navidrome / Jellyfin 后端),两者取向完全不同:一个要你有一套媒体服务,一个只要你有一堆文件。按自己的基础设施现状选就行。

发表评论