Skip to main content

a side project with simple and clean music player with Tkinter GUI and Textual TUI

Project description

🎵 Music Explorer

License Python Requirements

A lightweight music player with both a graphical (Tkinter) and terminal (Textual) interface — fast to run, easy to extend.


Table of contents


Features

  • ✅ Dual interfaces: GUI (Tkinter) and TUI (Textual)
  • ✅ Supports: MP3, WAV, OGG, FLAC
  • ✅ Shuffle and loop modes (Off / All / One)
  • ✅ Remembers last folder, last track, and volume
  • ✅ Persists playlist order to queue.json
  • ⚡ Lightweight, minimal dependencies

Quick start

Recommended: run inside a virtual environment.

# run with uv (recommended)
uv run main.py

# or run directly with Python
python main.py

Usage

On startup the program offers a choice between GUI and Terminal UI. You can force a mode:

python main.py -t gui    # GUI only
python main.py -t cli    # Terminal only

Installation

Create a virtual environment and install pinned dependencies:

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

Configuration

Settings are saved to save.json. Example minimal defaults you can copy into save.json:

{
    "current-folder": null,
    "current-file": null,
    "settings": {
        "volume": 100,
        "shuffle": false,
        "loop": "off"
    },
    "queue-file": null
}

Playlist order is persisted to queue.json inside your music folder.

Screenshots

GUI demo

Terminal demo

Contributing

  • Open issues for bugs or ideas
  • Send a PR with a clear description and tests where applicable
  • Keep changes small and focused

License

MIT — see the LICENSE file.


Made with ❤️ — happy hacking!

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

music_explorer-0.1.0.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

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

music_explorer-0.1.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file music_explorer-0.1.0.tar.gz.

File metadata

  • Download URL: music_explorer-0.1.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for music_explorer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 778a03995b16dbea3a45a271d80d209f63d8bfc941aede549aff35831e79a8d5
MD5 178c3f28adf695677c88015b5d7a0329
BLAKE2b-256 dcd7fcba4289228f489aaf3ec2c4ef8843b06469a43281ef71175bd6c7b98f25

See more details on using hashes here.

File details

Details for the file music_explorer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: music_explorer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for music_explorer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c314754029ea6fa09771460900e6a2f3090a77265f5c3fc3383ab99b54aca74
MD5 0bc991fbea5299fcabe17ef3174b0d88
BLAKE2b-256 b11280e55e35c14b016c85d7a02183e2429278c93608ab56f711a56fb491f765

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