Skip to content

(2025) A local music app to play songs saved on your computer, automatically generate playlists, and listen with an interactive interface by Dallin Stewart

License

Notifications You must be signed in to change notification settings

binDebug3/MusicPlayer

Repository files navigation

My Music Player

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.


📦 Features

  • 🎵 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

🚀 Getting Started

Create and activate a virtual environment

python -m venv venv
source venv/bin/activate        # macOS/Linux
venv\Scripts\activate           # Windows

Install dependencies

pip install -r requirements.txt

Run the app

python main.py "path/to/your/music/folder"

📂 Project Structure

.
├── 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

🙋 Contributors

  • Dallin Stewart – Original developer and designer

📌 Notes

  • Uses pygame.mixer for 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

About

(2025) A local music app to play songs saved on your computer, automatically generate playlists, and listen with an interactive interface by Dallin Stewart

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published