MUSIC-PLAYER(1)

NAME

music-player β€” An extensible music server written in Rust πŸš€πŸŽ΅βœ¨

SYNOPSIS

$sudo apt-get install -y

INFO

498 stars
32 forks
0 views

DESCRIPTION

An extensible music server written in Rust πŸš€πŸŽ΅βœ¨

README

Music Player (written in Rust)

License: MIT GitHub all releases release rust-clippy discord-server

Note: This is a work in progress. πŸ—οΈπŸš§

This is a simple music player that I made for my own use. It is written in Rust and uses rodio, symphonia, and gRPC libraries.
Music is played through the server's audio device. The daemon stores info about all available music, and this info can be easily searched and retrieved. Like mpd or Mopidy but written in Rust.

[!NOTE] Looking for more? If you're interested in this project, you might want to check out Rockbox Zig, a music player daemon built on the Rockbox Open Source Firmware. It offers advanced audio playback features, bringing the best of Rockbox to modern platforms with the power of Zig and Rust.

Installation

Compiling from source, without Nix:

# Install dependencies
brew install protobuf # macOS
sudo apt-get install -y libasound2-dev protobuf-compiler # Ubuntu/Debian
choco install protoc # Windows using Chocolatey Package Manager
# Compile
git clone https://github.com/tsirysndr/music-player.git
cd music-player/webui/musicplayer
nvm install # install node version specified in .nvmrc (optional on windows)
bun install && bun run build # build webui
cd ../..
cargo install --path .

With Nix:

git clone https://github.com/tsirysndr/music-player.git
cd music-player
nix develop --experimental-features "nix-command flakes"
cd webui/musicplayer
bun install && bun run build # build webui
cd ../..
cargo install --path .

macOS/Linux

Using Homebrew:

brew install tsirysndr/tap/musicplayer

Using Nix:

cachix use tsirysndr
nix profile install --experimental-features "nix-command flakes" github:tsirysndr/music-player

Or download the latest release for your platform here.

πŸ“¦ Downloads

Latest (Desktop):

Latest (CLI):

Other version...

Start the server

music-player

Usage

USAGE:
    music-player [SUBCOMMAND]

OPTIONS: -h, --help Print help information -V, --version Print version information

SUBCOMMANDS: albums List all albums artists List all artists help Print this message or the help of the given subcommand(s) next Play the next song pause Pause the current song open Open audio file playlist Manage playlists prev Play the previous song queue Manage the queue play Resume the current song scan Scan music library: $HOME/Music search Search for a song, album, artist or playlist stop Stop the current song tracks List all tracks

GraphQL API

# Start the server
music-player

Open http://localhost:5053/graphiql in your browser.

Features

  • Play music from specified path
  • Configuration file support
  • gRPC API for controlling the player
  • Scan music library
  • Play/Pause/Stop music
  • Next/Previous track
  • Create/Delete playlists
  • Music Player Client
  • Terminal UI (using tui-rs)
  • GraphQL API
  • Web UI
  • Desktop version (using gtk-rs)
  • Android Library (See songbird-android and songbird-android-rs)
  • iOS Library
  • Mobile version (React Native)
  • Stream to Chromecast
  • Stream to Airplay
  • Stream to Kodi
  • Stream to UPnP Media Renderer
  • Stream from Youtube (audio only)
  • Stream from Spotify
  • Stream from Soundcloud
  • Stream from Deezer
  • Stream from DatPiff
  • Stream from Tidal
  • Stream from MyVazo

✨ Star History

Star History Chart

SEE ALSO

clihub3/4/2026MUSIC-PLAYER(1)