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.0.tar.gz (33.8 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.0-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: playback_tui-1.3.0.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

Hashes for playback_tui-1.3.0.tar.gz
Algorithm Hash digest
SHA256 db9652dc4869defa655c4ce15e4fa72bef345894ca06d3d62b453347e1edbc33
MD5 82feddda7f32e62b7b37debbde8c527b
BLAKE2b-256 b31cfc1b57fe051f90103f63d962d975d88492f2abfa883f080795da2a1b4b6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: playback_tui-1.3.0-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

Hashes for playback_tui-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b7b8b111ec20efa2fd456617a5c3f1c1d24a587ca2ff1733430f6598151142c
MD5 43a9c3d824831330cf23abac331146c6
BLAKE2b-256 3b5602552cdc62815ee22cdc37a27a1447334697a9398a91db11e3892fdeebc9

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