Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. termusic

termusic

GPL-3.0Rustv0.13.2

A terminal-based music and podcast player written in Rust, supporting local playback and downloads from various sources.

GitHubGitHub
2.1k stars86 forks0 contributors

What is termusic?

Termusic is a terminal-based music and podcast player written in Rust. It allows users to play local audio files, stream podcasts from RSS feeds, and download tracks from platforms like YouTube and NetEase—all within a keyboard-driven TUI. It solves the problem of data race conditions found in similar players by leveraging Rust's memory safety.

Target Audience

Developers, sysadmins, and terminal enthusiasts who prefer a lightweight, keyboard-centric media player without relying on graphical interfaces or subscription services.

Value Proposition

It offers a stable, performant alternative to graphical players with zero cost, extensive format support, and the ability to download music freely. Its Rust foundation ensures reliability and avoids concurrency bugs.

Overview

Music Player TUI written in Rust

Use Cases

Best For

  • Listening to music entirely within the terminal without a GUI
  • Managing and playing podcasts via RSS feeds in a TUI
  • Downloading audio from YouTube, NetEase, and other sources for offline playback
  • Editing audio metadata (tags) directly in the terminal
  • Integrating media controls with desktop MPRIS-compatible systems
  • Using a lightweight, keyboard-driven player on servers or minimal setups

Not Ideal For

  • Users who rely on subscription-based streaming services like Spotify or Apple Music for curated playlists and recommendations.
  • Environments with minimal terminal graphics support, such as basic SSH sessions or legacy systems without Kitty/iTerm2 protocols.
  • Projects needing quick, dependency-free installation without managing Rust toolchains, external tools like yt-dlp, or system libraries.
  • Casual listeners who prefer graphical interfaces with mouse-driven controls and visual album galleries.

Pros & Cons

Pros

Extensive Format Support

Supports MP3, FLAC, OGG, M4A, and more via multiple backends (Rusty, MPV, GStreamer), with a detailed table showing codec compatibility across containers.

Integrated Podcast Management

Includes a dedicated TUI for subscribing to RSS feeds and managing podcasts, with a separate SQLite database file for persistent storage as noted in the configuration section.

Free Music Downloads

Leverages yt-dlp and ffmpeg to fetch tracks from YouTube, NetEase, Migu, and KuGou, aligning with its philosophy of avoiding paid subscriptions and locked-in services.

Rust-Powered Stability

Built in Rust to eliminate data race conditions common in similar players, ensuring reliable concurrency and performance as highlighted in the project's origin story.

Cons

Complex Installation Hurdles

Requires managing numerous system dependencies, especially on Windows where manual compilation of libopus is needed, and non-default features like cover art or soundtouch increase setup complexity and MSRV.

Incomplete Feature Set

The TODO list admits gaps like better lyric timestamp adjustment and rating sync support, indicating some user-requested enhancements are still in development and not yet implemented.

Terminal Art Limitations

Album cover display depends on specific terminal protocols (Kitty, iTerm2, Sixel) or external tools like ueberzug, which may not work in all environments and add extra configuration overhead.

Frequently Asked Questions

Quick Stats

Stars2,077
Forks86
Contributors0
Open Issues53
Last commit13 days ago
CreatedSince 2021

Tags

#download-manager#cli-tool#tui#local-music#podcast-client#audio-playback#rust#music-player

Built With

S
SQLite
d
dbus
R
Rust
y
yt-dlp
m
mpv
F
FFmpeg
g
gstreamer
P
Protobuf

Included in

Rust56.6k
Auto-fetched 22 hours ago

Related Projects

SpotifydSpotifyd

A spotify daemon

Stars10,666
Forks501
Last commit11 days ago
Spotify PlayerSpotify Player

A Spotify player in the terminal with full feature parity

Stars6,811
Forks355
Last commit25 days ago
ncspotncspot

Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.

Stars6,634
Forks266
Last commit5 days ago
rmpcrmpc

A modern, configurable, terminal based MPD Client with album art support via various terminal image protocols

Stars2,974
Forks98
Last commit5 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub