GitHub - LargeModGames/spotatui: A fast, standalone terminal music player in Rust: native Spotify streaming plus local, Subsonic, radio, Qobuz and Youtube sources
Pangram verdict · v3.3
We believe that this text is a mix of AI and human-written content.
AI likelihood · overall
MixedArticle text · 629 words · 3 segments analyzed
A terminal music player written in Rust, powered by Ratatui Native Spotify streaming, synced lyrics, a real-time audio visualizer, local file, Subsonic/Navidrome, Internet Radio, YouTube, and Qobuz sources, plus Apple Music on macOS. Spotify is optional. Table of Contents About Features Installation Desktop app (preview) Quickstart Adding Spotify later Music Sources Local Files Subsonic / Navidrome Internet Radio YouTube Qobuz Apple Music AI DJ Native Streaming Configuration Discord Rich Presence Anonymous Song Counter GitHub Profile Widget Plugins Performance Playback Requirements Audio Visualizer Using with spotifyd Migrating from spotify-tui Song History Star History Libraries used Development Windows Subsystem for Linux Help Wanted Maintainer Code signing policy spotatui Contributors Upstream Contributors (spotify-tui) Roadmap About A community-maintained, actively developed fork of spotify-tui that has since diverged on multiple fronts. Key differences spotify-tui spotatui Spotify backend external Connect device (spotifyd, official client, ...) built-in native client Source(s) Spotify Spotify, YouTube, local, Subsonic, Navidrome, Internet Radio, Qobuz, Apple Music (macOS) Features Multiple sources — Spotify optional.
Play from Spotify, Local Files, a Subsonic/Navidrome server, Internet Radio, YouTube, Qobuz, or Apple Music on macOS. The free sources need no Spotify account; press d to switch between them at any time. Native streaming. Play Spotify audio directly, no official app or spotifyd required — spotatui appears as its own Spotify Connect device (Premium required). Synced lyrics. Line-by-line lyrics that follow playback. Real-time audio visualizer. A system-wide FFT visualizer (press v) that reacts to whatever is playing, and for Spotify tracks the pitch view of the original spotify-tui. Cross-source play queue. Press z on any track to queue it — the queue plays across every source before your current context resumes. Playlist sync. Link one playlist as the master and mirror it onto Spotify, Qobuz, Subsonic or YouTube. Runs at startup and from spotatui sync. Lua plugins. Extend spotatui with event hooks, commands, keybindings, popups, and theming. Listening history & recap. spotatui keeps a local play history and can generate a shareable HTML recap (spotatui history recap). Full CLI. Most of what the UI does is scriptable — playback, search, playlists, shell completions. Run spotatui --help. Lightweight. ~78 MB RAM while streaming, versus a full Electron client. See Performance. Installation Spotify is optional. On first launch spotatui asks which source you want to use. YouTube, Subsonic/Navidrome, Internet Radio, Local Files, Qobuz, and Apple Music (macOS) all work with no Spotify account. Spotify Premium is only needed for the Spotify source; you can add it anytime from the d menu. # One-line installer — macOS, Linux, WSL. Grabs the prebuilt binary for your # system, verifies its checksum, and puts spotatui on your PATH. No Rust needed.
curl -fsSL https://spotatui.com/install.sh | bash # Homebrew (macOS only) brew tap LargeModGames/spotatui brew install spotatui # Cargo — compile from crates.io … cargo install --locked spotatui # … or fetch the prebuilt binary without compiling cargo binstall spotatui # Arch Linux (AUR) — prebuilt binary (faster) yay -S spotatui-bin # …or build from source yay -S spotatui # Void Linux (unofficial repo) echo repository=https://raw.githubusercontent.com/Event-Horizon-VL/blackhole-vl/repository-x86_64 | sudo tee /etc/xbps.d/20-repository-extra.conf sudo xbps-install -S spotatui # One-line installer — Windows PowerShell irm https://spotatui.com/install.ps1 | iex # …or via Winget winget install spotatui # NixOS (Flake, recommended for NixOS) # Add spotatui to your flake inputs: inputs = { spotatui = { url = "github:LargeModGames/spotatui"; inputs.nixpkgs.follows = "nixpkgs"; }; } # Add the spotatui package from your inputs to your config: { inputs, ...}:{ # Your other configurations environment.systemPackages = with pkgs; [ inputs.spotatui.packages.${pkgs.stdenv.hostPlatform.system}.default ]; } The flake will take care of all the dependencies for you, except for setting the audio backend. If you use alsa: hardware.alsa.enable = true; Or if you use pipewire: services.pipewire = { enable = true; alsa.enable = true; #your other settings }; The flake provides x86_64-linux, aarch64-linux, and aarch64-darwin.