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

  • / - 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.3.4.tar.gz (35.5 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.3.4-py3-none-any.whl (43.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: playback_tui-1.3.4.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for playback_tui-1.3.4.tar.gz
Algorithm Hash digest
SHA256 8da4dcb0caa820e726fc19611ae954d2dfa17495c42ce7b588212dc2e524f364
MD5 34fb9abd635db85427787150b0949e4a
BLAKE2b-256 cab38ce109ab5aa0e0a6ac8144475e54811fde88d70d5c2396096db18b360026

See more details on using hashes here.

File details

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

File metadata

  • Download URL: playback_tui-1.3.4-py3-none-any.whl
  • Upload date:
  • Size: 43.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for playback_tui-1.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7e24edf8da3dcdb7080ec254d62b68430231f405b9411e502eb67a9667d42886
MD5 b2edf15d3e6fecb8503f9fa8a040f5b5
BLAKE2b-256 7f95a2dd2488bbf29e9b09f27610a8499d83059e246a8f6b60c62d0b797115f3

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