Skip to main content

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

  1. Install Python 3.10+ from python.org
  2. Install FFmpeg from ffmpeg.org or via chocolatey:
    choco install ffmpeg
    

Installation

  1. Clone or download this repository

  2. 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/pause
  • Enter - Play selected song and generate new queue
  • Shift+Enter - Add selected song to top of queue
  • Ctrl+C - Exit application

Playback Controls

  • Ctrl+Shift+Right - Skip to next song
  • Ctrl+Shift+Left - Previous song or restart current song
  • Ctrl+Shift+Up - Page up in playlist
  • Ctrl+Shift+Down - Page down in playlist
  • Cmd+Ctrl+Up - Move to top of playlist (macOS)
  • Cmd+Ctrl+Down - Move to bottom of playlist (macOS)

Features

  • Ctrl+Shift+K - Open command prompt/search
  • Ctrl+Shift+S - Shuffle playlist
  • Ctrl+Shift+Q - Open queue screen
  • Ctrl+Shift+T - Open settings
  • Ctrl+Shift+D - Open download status screen
  • Ctrl+Shift+U - Download current playlist

Modal Navigation

  • Escape - Close current modal/screen
  • Up/Down - Navigate lists
  • Enter - Select item
  • Delete/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:

  1. Create a Spotify app at developer.spotify.com
  2. Get your Client ID and Client Secret
  3. Configure them in the application settings (Ctrl+Shift+T)

Dependencies

Python Packages

  • textual>=5.3.0 - Modern TUI framework
  • pygame>=2.6.0 - Audio playback
  • mutagen>=1.47.0 - Audio metadata
  • spotipy>=2.25.0 - Spotify API integration
  • yt-dlp>=2025.8.0 - YouTube/SoundCloud downloading
  • requests>=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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

playback_tui-1.1.1.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

playback_tui-1.1.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file playback_tui-1.1.1.tar.gz.

File metadata

  • Download URL: playback_tui-1.1.1.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for playback_tui-1.1.1.tar.gz
Algorithm Hash digest
SHA256 b0ea018ec27fcf4dbe4381c095babfd5c73c174934ee6561e97574dc0dc67d77
MD5 11fbd8055415eea18614eed9291136bc
BLAKE2b-256 f904efd787d5ad6c9a5b5989ff41977c4a04f734db4948e9f2cd4312d59e19a8

See more details on using hashes here.

File details

Details for the file playback_tui-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: playback_tui-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for playback_tui-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c5bab377625c2fc00053570da997cbb7fc4526ec0f3487217232fc0ecfa65cf
MD5 5acbbb86fd5b8adaa22f7518ad039524
BLAKE2b-256 a35174e6708c2d82b4ebb55887b652b0abaf14d0900b6a077e2a4bc14ffb7f13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page