A terminal-based music player with playlist management and downloading capabilities
Project description
Playback TUI
A fully local terminal-based music player to play and download spotify/soundcloud playlists
Features
- 🎵 Modern TUI interface with rich text and interactive elements
- 🎧 Browse and play local music playlists
- 📥 Download playlists from Spotify and SoundCloud
- ⏯️ Advanced playback controls (play/pause/skip/previous)
- 🔀 Shuffle and queue management
- 🎛️ Volume control and progress tracking
- ⌨️ Comprehensive keyboard shortcuts
- 🔍 Search functionality with command prompt
- 📊 Metadata display (artist, duration, album art)
- 🌍 Cross-platform support - works on Windows, macOS, and Linux
- 🎨 Modern terminal interface with visual selection highlighting
Prerequisites
Required Software
- Python 3.10+ - Required for running the application
- FFmpeg - Required for downloading and processing audio from Spotify/SoundCloud
Platform-Specific Prerequisites
macOS
Install via Homebrew:
brew install python@3.10 ffmpeg
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install python3.10 python3-pip ffmpeg
Linux (Fedora/CentOS)
sudo dnf install python3.10 python3-pip ffmpeg
Windows
- Install Python 3.10+ from python.org
- Install FFmpeg from ffmpeg.org or via chocolatey:
choco install ffmpeg
Installation
-
Clone or download this repository
-
Install the package and dependencies:
pip install -e .
Or install dependencies manually:
pip install -r requirements.txt
Usage
Run the application:
playback-tui
Or if installed in development mode:
python player.py
Keyboard Shortcuts
Main Navigation
Space- Toggle play/pauseEnter- Play selected song and generate new queueShift+Enter- Add selected song to top of queueCtrl+C- Exit application
Playback Controls
Ctrl+Shift+Right- Skip to next songCtrl+Shift+Left- Previous song or restart current songCtrl+Shift+Up- Page up in playlistCtrl+Shift+Down- Page down in playlistCmd+Ctrl+Up- Move to top of playlist (macOS)Cmd+Ctrl+Down- Move to bottom of playlist (macOS)
Features
/- Open command prompt/searchCtrl+Shift+S- Shuffle playlistCtrl+Shift+Q- Open queue screenCtrl+Shift+T- Open settingsCtrl+Shift+D- Open download status screenCtrl+Shift+U- Download current playlist
Modal Navigation
Escape- Close current modal/screenUp/Down- Navigate listsEnter- Select itemDelete/Backspace- Remove item (where applicable)
Configuration
Music Directory Structure
By default, the application looks for music in:
~/Playback-TUI/Playlists/
├── playlist1/
│ ├── song1.mp3
│ ├── song2.mp3
│ └── ...
├── playlist2/
│ ├── song3.mp3
│ └── ...
└── ...
You can customize playlist locations in the settings.
Spotify Integration
For downloading playlists from Spotify, you'll need to:
- Create a Spotify app at developer.spotify.com
- Get your Client ID and Client Secret
- Configure them in the application settings (
Ctrl+Shift+T)
Dependencies
Python Packages
textual>=5.3.0- Modern TUI frameworkpygame>=2.6.0- Audio playbackmutagen>=1.47.0- Audio metadataspotipy>=2.25.0- Spotify API integrationyt-dlp>=2025.8.0- YouTube/SoundCloud downloadingrequests>=2.32.0- HTTP requests
All dependencies are automatically installed when using pip install -e .
System Requirements
- FFmpeg - Required for audio downloading and processing
- Python 3.10+ - Required runtime environment
Troubleshooting
Audio Issues
- Ensure pygame can access your system's audio drivers
- On Linux, you may need to install additional audio libraries:
sudo apt install libasound2-dev libpulse-dev
Download Issues
- Verify FFmpeg is properly installed and in your PATH
- Check Spotify credentials are correctly configured
- Ensure internet connectivity for downloading
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file playback_tui-1.2.10.tar.gz.
File metadata
- Download URL: playback_tui-1.2.10.tar.gz
- Upload date:
- Size: 33.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
050835de8b385f872edd484eaf6b9ff53a337af3260e7ef89b850c3871ad5aeb
|
|
| MD5 |
61302c055d1040a0dcb3f2b283e1cf37
|
|
| BLAKE2b-256 |
d509d3172b808f3b54793a3ddf063c58114b08c572fc7daa11a925ec2f2c995b
|
File details
Details for the file playback_tui-1.2.10-py3-none-any.whl.
File metadata
- Download URL: playback_tui-1.2.10-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
917a27de966f5167244482c0be1924f9ee288c01c12e7e01d24665e5325ac2cf
|
|
| MD5 |
61f4d63aae20c2215cd53cb1e0c466a0
|
|
| BLAKE2b-256 |
b56e77870b65583f4626558ab1eb6a8afa68fd7b3775183dda74b4e229843cf4
|