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 # Windows
pip install -r requirements.txt
python 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