Repolode
tsirysndr

tsirysndr/music-player

用 Rust 编写的可扩展音乐播放守护进程,内含服务端、客户端、Web 界面、终端界面和桌面应用。

可替代:SpotifySonos

Star
529
Fork
34
未关闭 Issue
15
最近提交
9天前

这是什么?

Music Player 是一个用 Rust 编写的音乐播放守护进程,设计思路接近 mpd 和 Mopidy。同一个二进制文件既能作为服务端运行,也能作为客户端使用:第一个实例启动守护进程,之后的命令会自动识别并与其通信。守护进程扫描本地音乐目录,用 SQLite 和 FTS5 建立全文索引,并通过 gRPC、GraphQL 与 WebSocket 事件对外提供服务。

音频解码和播放基于 Rockbox 固件的引擎,通过若干已发布的 Rust crate 调用。支持 40 多种音频格式,内置 EQ 预设、淡入淡出和 ReplayGain 等 DSP 处理。输出可以送到系统声卡,也可以输出到 stdout、命名管道或 Unix/TCP 套接字。

控制界面包括基于 ratatui 的终端界面、端口 5053 上的 React Web 界面,以及基于 Slint 的桌面应用。它还能浏览并播放 Subsonic、Navidrome 和 Jellyfin 服务器上的音乐,投屏到 Chromecast 和 UPnP/DLNA 设备,并播放网络电台。可选功能包括 Rocksky 记录播放、AT Protocol 同步、基于 Chromaprint 的声纹识别与 AcoustID 查询、基于 DuckDB 的收听分析,以及供 AI 代理使用的 MCP 服务。

核心功能

  • 01通过 Rockbox 播放引擎支持 40 多种音频格式,并带有 EQ、淡入淡出和 ReplayGain
  • 02音乐库使用 SQLite 与 FTS5 建立全文索引
  • 03终端界面、React Web 界面和 Slint 桌面应用可控制同一个守护进程
  • 04提供 gRPC 与 GraphQL 接口,便于开发自定义客户端
  • 05可浏览并串流 Subsonic、Navidrome 和 Jellyfin 服务器上的音乐
  • 06可投屏到 Chromecast 与 UPnP/DLNA 播放器

适用场景

  • 在家用机器上搭建自托管音乐服务,通过手机浏览器或终端控制播放
  • 把远程 Navidrome 或 Jellyfin 音乐库串流到本地音频输出
  • 基于 gRPC 或 GraphQL 接口开发自定义音乐客户端
  • 让 AI 代理通过 MCP 服务管理队列和播放

快速上手

  1. 1

    使用 Homebrew 安装命令行工具(macOS/Linux)

    brew install tsirysndr/tap/musicplayer
  2. 2

    启动守护进程,默认扫描 $HOME/Music 目录

    music-player

使用前须知

  • macOS 桌面应用未经过代码签名和公证,首次启动会被 Gatekeeper 拦截。
  • 从源码编译需要先安装 protobuf 和用于构建 Web UI 的 Bun,并且要在 cargo install 之前单独运行 DuckDB 获取脚本。

收录于专题

标签

常见问题

music-player 是什么?
用 Rust 编写的可扩展音乐播放守护进程,内含服务端、客户端、Web 界面、终端界面和桌面应用。 Music Player 是一个用 Rust 编写的音乐播放守护进程,设计思路接近 mpd 和 Mopidy。同一个二进制文件既能作为服务端运行,也能作为客户端使用:第一个实例启动守护进程,之后的命令会自动识别并与其通信。守护进程扫描本地音乐目录,用 SQLite 和 FTS5 建立全文索引,并通过 gRPC、GraphQL 与 WebSocket 事件对外提供服务。
music-player 可以免费使用吗?用的什么许可证?
music-player 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
music-player 还在维护吗?
活跃维护中。music-player 最近一次提交是在 2026年10月30日。
music-player 适合用来做什么?
在家用机器上搭建自托管音乐服务,通过手机浏览器或终端控制播放 把远程 Navidrome 或 Jellyfin 音乐库串流到本地音频输出 基于 gRPC 或 GraphQL 接口开发自定义音乐客户端 让 AI 代理通过 MCP 服务管理队列和播放
music-player 怎么安装和运行?
使用 Homebrew 安装命令行工具(macOS/Linux): brew install tsirysndr/tap/musicplayer 启动守护进程,默认扫描 $HOME/Music 目录: music-player
在哪里获取 music-player?
源代码和安装说明在 GitHub 上:https://github.com/tsirysndr/music-player

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目