Skip to main content

A lightweight terminal music player with mpv engine and auto-setup

Project description

FreeThullu Music Player 🐙🎵

Version 1.0.8

A powerful, hybrid music player that summons your beats from the deep. Featuring a modern GUI (PyQt6) for desktop comfort and a robust CLI mode for terminal dwellers.

✨ Features

  • Hybrid Interface:
    • Unified Binary: A single executable for all modes.
    • GUI (Default): Modern Dark Theme, Tabbed Interface (Now Playing, Library, Search, Queue), and Animated Visuals.
    • CLI (--cli): Lightweight, keyboard-driven terminal interface.
  • Robust Debugging: Use --debug to troubleshoot playback or scraping issues.
  • Universal Playback:
    • Local Library: Deep recursive scanning, instant filtering, and file management.
    • Online Streaming: Seamless YouTube and SoundCloud (prefix sc:) integration.
  • Immersive Experience:
    • Animated FreeThullu: Watch the Great Old One pulse to the rhythm.
    • Synced Lyrics: Automatic fetching from LRCLib and Letras.mus.br.
  • Smart Queue:
    • Manage your playlist with ease.
    • Context Menus: Right-click to add multiple items to the queue.
    • Jump: Double-click any item in the queue to play immediately.
  • Cross-Platform: Native support for Linux and Windows (with auto-mpv setup).

🚀 Installation

Via PIP

pip install cli-music-player-cthulhu

System Requirements

  • Python 3.9+
  • Linux: Requires mpv (sudo apt install mpv / sudo pacman -S mpv).
  • Windows: Auto-downloads mpv on first run.

🎮 Usage

Launch the player using the unified command:

# Start in GUI mode (Default)
musicplayer

# Start in CLI mode (Terminal)
musicplayer --cli

# Enable Debug Mode (Works for both GUI and CLI)
musicplayer --debug
musicplayer --cli --debug

# You can also use the alias:
freethullu-player

🖥️ Graphical Interface (GUI)

Launch the full experience with animated visuals and tabbed navigation.

Controls:

  • Navigation: Use tabs to switch views.
  • Library: Type in the filter box. Press Enter to trigger a deep recursive search in subfolders.
  • Search: Type queries for YouTube. Prefix with sc: for SoundCloud.
  • Queueing: Select multiple items (Ctrl/Shift+Click) -> Right Click -> Add to Queue.

📟 Terminal Interface (CLI)

A lightweight, keyboard-driven interface for terminal fans.

Controls:

  • Space: Pause/Play
  • /: Online Search
  • a: Add current selection to Queue
  • n: Next track
  • p: Previous track
  • q: Quit

📦 Building from Source

To build standalone executables (Linux/Windows):

  1. Clone and Install Dependencies:

    git clone https://github.com/thiagofmendonca/cli-music-player.git
    cd cli-music-player
    pip install .
    pip install pyinstaller
    
  2. Build:

    # Linux
    python build_exe.py
    
    # Windows (via GitHub Actions recommended)
    # Or manual: Ensure libmpv-2.dll is in the folder
    pyinstaller --noconfirm --onefile --name "FreeThulluPlayer" --add-data "musicplayer/assets;musicplayer/assets" --add-data "VERSION;." --icon "musicplayer/assets/frame1.png" --hidden-import "musicplayer" run_musicplayer.py
    

📜 License

GNU Affero General Public License v3.0 (AGPLv3)

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

cli_music_player_cthulhu-1.0.8.tar.gz (522.8 kB view details)

Uploaded Source

Built Distribution

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

cli_music_player_cthulhu-1.0.8-py3-none-any.whl (524.6 kB view details)

Uploaded Python 3

File details

Details for the file cli_music_player_cthulhu-1.0.8.tar.gz.

File metadata

  • Download URL: cli_music_player_cthulhu-1.0.8.tar.gz
  • Upload date:
  • Size: 522.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cli_music_player_cthulhu-1.0.8.tar.gz
Algorithm Hash digest
SHA256 11623d8dce857526247c9c302473c334bce641f29d7e0f3a9d6f386dcc643807
MD5 457c509ed96a043edc3936911374768d
BLAKE2b-256 621429b842b9f8f92258a1f959fb9dce42a1dda79d6f0fc163c54c13a69f4174

See more details on using hashes here.

Provenance

The following attestation bundles were made for cli_music_player_cthulhu-1.0.8.tar.gz:

Publisher: python-publish.yml on thiagofmendonca/cli-music-player

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cli_music_player_cthulhu-1.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for cli_music_player_cthulhu-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 af6ec3d082adaf4fb285534fba57793283436a43bad4396b009e2121ff32dd75
MD5 b760d51d2deb35f4f0d6163ec7440c0a
BLAKE2b-256 3b1846917d0bc3ca11bbaec3035a5d5349dc8a3e6b98f8f3467d1df8e41e3480

See more details on using hashes here.

Provenance

The following attestation bundles were made for cli_music_player_cthulhu-1.0.8-py3-none-any.whl:

Publisher: python-publish.yml on thiagofmendonca/cli-music-player

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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