A dual-interface Music Player built using Python, featuring both a Command-Line Interface (CLI) and a Graphical User Interface (GUI) built with PyQt6.
It supports MP3/WAV playback, song directory selection, pagination, album art extraction, and volume control.
| Intro Screen | Main Screen | Song List |
|---|---|---|
![]() |
![]() |
![]() |
| Intro | Main | Drag Drop | Drag Drop Song | Settings |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
- Play
.mp3and.wavfiles usingpygame - Supports next, previous, repeat, and random song playback
- Adjustable volume controls
- Save and load last-used music directory
- Exception handling for robustness
- Simple and intuitive terminal UI
- Paginated song listing using
tabulate - Menu-driven navigation
- Directory management via settings
- Elegant, modern interface with background and album art
- Drag & Drop folder loading
- Embedded album art from songs (via
mutagen) - Persistent settings for last used folder
- Interactive buttons for playback, volume, and navigation
- Sound effects for transitions
π Music-Player
β
βββ π cmd
β βββ main.py
β βββ access_songs_directory.py
β βββ operations.py
β βββ settings.py
β βββ icons.py
β
βββ π gui
β βββ main_one.py
β βββ main.py
β βββ main_frame.py
β βββ intro.py
β βββ load.py
β βββ operations.py
β βββ operations2.py
β βββ settings.py
β βββ access_songs_directory.py
β βββ π assets
β βββ π images
β βββ π sounds
β βββ π dir
β
βββ π screenshots
β βββ π cmd
β βββ π gui
β
βββ .gitignore
βββ .python-version
βββ requirements.txt
βββ README.md
βββ LICENCE
git clone https://github.com/hunjanhar/music-player.git
cd music-playerpython -m venv venv
source venv/bin/activate # For macOS/Linux
venv\Scripts\activate # For Windowspip install -r requirements.txtcd cmd
python main.py- Enter your song directory when prompted.
- Use menu options (1β10) to navigate, play, pause, and manage songs.
cd gui
python main.py- Drag and drop a folder containing .mp3 or .wav files.
- Use playback buttons to control the player.
| Library | Purpose |
|---|---|
| Pygame | Audio playback & sound effects |
| PyQt6 | GUI interface |
| Mutagen | Extracting embedded album art |
| Tabulate | Table formatting in CMD |
| OS, Math, Random | File management & logic handling |
- This project is licensed under the MIT License β see the LICENSE file for details







