Terminal Music Player written in Rust

Listen to music freely as both in freedom and free of charge!

Freedom: As time goes by, online service providers controls pretty much everything we listen. Complicated copyright issues make things worse. If my favorite song cannot be found in a website, probably I'll 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 monthly paid membership for several websites.

As a contributor of GOMU(https://github.com/issadarkthing/gomu), I met serious problems during development. The main problem is data race condition. So I basically rewrite the player in rust, and hope to solve the problem.

As for now, mp3, m4a, flac, wav and ogg/vorbis are supported.

By the way, for mobile devices, I recommend sync your music library with mobile by verysync and listen to them with vinyl(which I contributed also).

main tageditor

Requirement:

Need gstreamer and related plugins installed to play music. Please check below: gstreamer gst-libav gstreamer-plugins-base(gst-plugins-base) gstreamer-plugins-good(gst-plugins-good) gstreamer-plugins-bad(gst-plugins-bad) gstreamer-plugins-ugly(gst-plugins-ugly) (Additonally for gentoo:) gst-plugins-meta (Additionally for macos:) gstreamer-audio gstreamer-sys Optionally you need youtube-dl and ffmpeg installed to download mp3 from youtube.

On windows, please download and install gstreamer development package from https://gstreamer.freedesktop.org/download/.

Installation:

cargo install termusic Or manually: git clone https://github.com/tramhao/termusic.git cd termusic make Then install with: make install Or if you need dbus mpris support(need to have dbus installed): make mpris By default, termusic can display album cover in kitty or iterm2(mac, not tested). If you need album cover displayed on other terminals, please install ueberzug(https://github.com/seebye/ueberzug) by pip3 install ueberzug or paru -S ueberzug, then: make cover If you need both mpris and cover, you can: make full Finally, you can run it with: ~/.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 everything can be set from the app. For example, you can change music dir with enter and backspace, and it'll be saved to config. You can change loop mode with m key and it'll be saved too. You can change volume with +/-, and it'll be saved also.

You need stable branch rust toolchain installed to build it. I'm building with 1.56(rust edition 2021). According to user feedback, version less than 1.52 is not working.

Distro Packages

Arch Linux

Arch Linux users can install termusic from the AUR using an AUR helper. For example:

paru termusic

NetBSD

NetBSD users can install termusic from the official repositories. pkgin install termusic

ChangeLog

[v0.6.0]

[v0.5.0]

[v0.3.17]

[v0.3.16]

[v0.3.15]

[v0.3.14]

[v0.3.13]

[v0.3.12]

[v0.3.11]

[v0.3.10]

[v0.3.9]

[v0.3.8]

[v0.3.7]

[v0.3.6]

[v0.3.5]

[v0.3.4]

[v0.3.3]

Implemented features(changelog before v0.3.3):

Thanks for

License

GPLv3 for netease api code under src/lyric/netease. MIT License for other code.