#terminal #tui #music #cli #youtube

app termusic

Terminal Music Player written in Rust. Can download music from youtube(and netease) and then embed lyrics and album photos into mp3 files. Need mpv installed to play the music.

10 releases

0.2.11 Jul 16, 2021
0.2.10 Jul 16, 2021

#46 in Audio

38 downloads per month

MIT and LGPL-2.1

2MB
6K SLoC

Terminal Music Player written in Rust

Nowadays listen to favorite songs are not easy. For online services, the copyrights are owned by several different softwares and websites. Local player becomes the best choice.

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, only mp3 is supported. It's basically because mp3 has id3 tags and these tags played an important role in the app.

main tageditor

Requirement:

Need mpv installed to play mp3. Optionally need youtube-dl installed to download mp3 from youtube.

Installation:

cargo install termusic

Or install manually:

git clone https://github.com/tramhao/termusic.git
cd termusic
make
make install
~/.local/share/cargo/bin/termusic

ChangeLog/Implemented features:

  • Music library below ~/Music, can be changed via editing $HOME/.config/termusic/config.toml
  • Pause/Skip
  • Seek forward/backward
  • USLT lyric
  • Album Photo display(only for kitty terminal)
  • Youtube-dl integration
  • lyric and tag download
  • yank and paste in playlist
  • Lyric offset adjustment
  • Local service to fetch lyrics
  • Download song in tag editor
  • Configuration v0.2.6
  • Local service for kugou v0.2.10
  • Youtube-dl progress indication(indicated by status line)
  • Youtube search by invidious V0.2.7(from the same dialogue of download)
  • Local service for migu v0.2.8
  • Database instead of id3
  • more player backend

Thanks for

License

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

Dependencies

~14–19MB
~383K SLoC