Listen to music freely as both in freedom and free of charge!
![]() |
![]() |
Freedom: As time goes by, online service providers control pretty much everything we listen to. Complicated copyright issues make things worse. If my favorite song cannot be found on a website, I'll probably just not listen to them for years.
Free of charge: You can download from YouTube, NetEase, Migu and KuGou for free. No need to register for monthly paid memberships.
As a contributor of GOMU, I met serious problems during development. The main problem is data race condition. So I rewrote the player in rust, and hope to solve the problem.
Below are the audio formats supported by the various backends.
In the case that metadata is not supported, an attempt will still be made to play the file.
| Format (feature
) | Symphonia (default
) | Mpv (mpv
) | Gstreamer (gst
) | Metadata |
|--------------------|-----------------------|-------------|-------------------|----------|
| ADTS | Yes | Yes | Yes | No |
| AIFF | No | Yes | Yes | Yes |
| FLAC | Yes | Yes | Yes | Yes |
| M4a | Yes | Yes | Yes | Yes |
| MP3 | Yes | Yes | Yes | Yes |
| Opus | No | Yes | Yes | Yes |
| Ogg Vorbis | Yes | Yes | Yes | Yes |
| Wav | Yes | Yes | Yes | Yes |
| WebM | No | Yes | Yes | No |
You will need to build with the stable rust toolchain. Version 1.58 is tested, and according to user feedback, versions below 1.52 do not work.
=======
| Backend | Requirements |
|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Symphonia | You will need ALSA installed to support decoding with symphonia.
Note that the ALSA development files are required. These are provided as part of the libasound2-dev
package on Debian and Ubuntu distributions and alsa-lib-devel
on Fedora. |
| GStreamer | GStreamer |
| MPV | MPV |
You can optionally install yt-dlp and FFmpeg to download MP3s from Youtube.
Do note that these will be compiled with the symphonia backend.
Arch Linux users can install termusic
from the AUR using an AUR helper.
bash
paru termusic
NetBSD users can install termusic
from the official repositories.
bash
pkgin install termusic
Either in the user's environment:
bash
nix-env --install termusic
Or declaratively in /etc/nixos/configuration.nix
:
nix
{
environment.systemPackagess = with pkgs; [
...
termusic
];
}
bash
cargo install termusic
bash
git clone https://github.com/tramhao/termusic.git
cd termusic
make
Then install with:
bash
make install
Or if you need dbus mpris support (you will need to have dbus installed):
bash
make mpris
By default, termusic can display album covers in Kitty or iTerm2 (mac, not tested). If you need album covers displayed on other terminals, please install ueberzug, then:
bash
make cover
If you need mpris, cover, and yt-dlp, do:
bash
make full
Finally, you can run it with:
bash
~/.local/share/cargo/bin/termusic
You can copy it anywhere in your $PATH
. The configuration file is located in ~/.config/termusic/config.toml
.
However, as this is a minimalistic program, you don't need to edit the configuration file and almost everything can be set from the app.
Contributions, bug reports, new features and questions are welcome! 😉 If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termusic, feel free to open an issue or a PR.
Please follow our contributing guidelines
GPLv3 for NetEase api code under src/lyric/netease
.
MIT License for other code.