Termusic

termusic is a terminal music and podcast player written in Rust. It allows you to listen to music and podcasts freely, both in terms of freedom and cost. You can download music from YouTube, NetEase, Migu, and KuGou for free, without the need for monthly paid memberships.

Features

  • Freedom: Enjoy music without being controlled by online service providers.
  • Free of Charge: Download from various platforms for free.
  • Minimalist UI: An intuitive interface with a tag editor.
  • Multiple Backends: Supports Symphonia, Mpv, and Gstreamer.

Supported Formats

termusic supports a wide range of audio formats across different backends:

FormatSymphonia (rusty)Mpv (mpv)Gstreamer (gst)Metadata
ADTSYesYesYesNo
AIFFNoYesYesYes
FLACYesYesYesYes
M4aYesYesYesYes
MP3YesYesYesYes
OpusNoYesYesYes
Ogg VorbisYesYesYesYes
WavYesYesYesYes
WebMYes (opus not supported)YesYesNo
MKVYes (depends on codec)YesYesNo

The default backend is rusty.

Installation

Requirements

  • MSRV: Minimal Supported Rust Version 1.75.0.
  • Git: Required to build the package.

Backend Requirements

  • Symphonia: Requires ALSA, soundtouch, and clang (build only).
  • GStreamer: Requires GStreamer.
  • MPV: Requires MPV.
  • Protobuf: Required for building and running termusic.
  • Dbus: Required if use_dbus configuration option is enabled.
  • yt-dlp support: Optionally install yt-dlp and FFmpeg for downloading MP3s from YouTube.

Installation Methods

Arch Linux

Install from the AUR using an AUR helper:

paru termusic

NetBSD

Install from the official repositories:

pkgin install termusic

Nix/NixOS

Install using nix-env:

nix-env --install termusic
{
    environment.systemPackages = with pkgs; [
      termusic
    ];
}

Cargo

Install from crates.io:

cargo install termusic termusic-server --locked

From Source

Clone the repository and build from source:

git clone https://github.com/tramhao/termusic.git
cd termusic
make
make install

To display album covers on terminals other than Kitty or iTerm2, install ueberzug or ueberzugpp and build with:

make full

Run termusic:

~/.local/share/cargo/bin/termusic

You can copy it to any location in your $PATH. The configuration file is located in ~/.config/termusic/config.toml (or on macOS, ~/Library/Application Support/termusic/config.toml).

Similar Projects