spotify-player
Properties
- created-by
- Person/Thang Pham
- tags
- Rust, Spotify, TUI, Spotify/Tool/TUI
- logseq-entity
- Logseq/Entity/Software/Project
spotify-player by GitHub/User/aome510 aka Person/Thang Pham
A Spotify player in the terminal with full feature parity
- GitHub/Star count: 6,888 as of 2026-06-27 Sat
Technical Aspects
- Built with Rust
- uses RustAudio/rodio as its backend. Other backends include
- Uses
librespotcrates for Spotify playback, metadata, OAuth login, and Spotify Connect. - Uses
rspotifyfor Spotify Web API calls. The Spotify Web API is Spotify's HTTP-based application programming interface for metadata and account actions. - Uses Ratatui for terminal layout and rendering, with
crosstermfor terminal input, screen control, and styling. - Uses
reqwest,tokio, andrustlsfor network and asynchronous work. - Uses
souvlakiandwinitfor optional media-key integration. - Uses
imageandviuerfor optional album-cover rendering in terminals. - Uses
notify-rustfor optional desktop notifications. - Uses
rustfftfor optional audio visualization when direct streaming is enabled.
- Built with Rust
Features
- configurable
- To enable fuzzy search, build with the
fzffeature (disabled by default).To enable fuzzy search, build with the fzf feature (disabled by default).
- remote control with Spotify Connect.
- streaming songs directly from the terminal.
- audio visualization.
- synced lyrics.
- cross-platform media control.
- image rendering.
- desktop notification.
- running the application as a daemon
- CLI commands
Examples
- see also asciicast
- Checkout examples/README.md for more examples.
Supply Chain Notes
- Cargo.lock shows about 778 locked package entries, 700 unique Rust/crate names, 47 direct dependencies, and an approximate longest dependency chain of 33 edges.
- This is the largest dependency tree of the three Spotify terminal clients in this comparison. It is slightly deeper than ncspot and much larger than spotify-tui.
- The larger tree comes from feature breadth: direct Spotify streaming through
librespot, multiple audio backends, terminal rendering, image display, desktop notifications, media-key integration, OAuth login, and audio visualization. - The project uses a modern core stack:
tokio1.50,clap4.6,ratatui0.30,crossterm0.29,rspotify0.15,reqwest0.13, andrustls0.23. - The main review areas are audio output backends, TLS networking, OAuth token handling, terminal rendering, image decoding, notifications, media-key integration, and daemon mode.
- Optional Cargo features matter here. A smaller build can avoid features such as
image,notify,daemon,fzf, and non-default audio backends when those are not needed.