A Python desktop music player with smart playlists, recommendations, metadata editing, and a polished GUI. Features include search, seek, keyboard shortcuts, playlist management, and machine learning–based song suggestions and playlist generation.
- 🎵 Play music locally (
.mp3,.wav,.flac, etc.) - 🔄 Seek, pause, stop, skip, and shuffle playback
- 🎚️ Visual seek bar, playback status, and time indicators
- 📁 Multiple playlists with add/remove support
- 🧠 Auto-generated playlists via NLP and audio similarity
- 💡 Real-time song recommendations
- 🔍 Search and fuzzy match track names
- ❤️ Like/dislike logging with play history tracking
- ⌨️ Global hotkeys to play/pause (
Ctrl+Shift+Z) and skip (Ctrl+Shift+X) - 🧾 Metadata extraction via
mutagen - 📊 TF-IDF and Word2Vec NLP models for playlist and similarity inference
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windowspip install -r requirements.txtpython main.py "path/to/your/music/folder".
├── main.py # Entry point
├── gui.py # Tkinter GUI and playback logic
├── audio_backend.py # Audio control via pygame
├── history_manager.py # Logs play, pause, like, dislike
├── metadata_manager.py # Extracts metadata using mutagen
├── playlist_manager.py # Generates playlists using NLP and audio similarity
├── recommendation.py # Suggests similar songs using TF-IDF
└── history.csv # Logs song usage with timestamps
- Dallin Stewart – Original developer and designer
- Uses
pygame.mixerfor playback (requires working audio system) - Some features (like NLP playlist generation) require downloading large models (e.g., Word2Vec)
- Song metadata may be missing or inaccurate depending on file tagging
- Works best on local music libraries with reasonably consistent filenames and tags