Mini Player is a sleek and modern desktop music player built with PyQt6. It provides a lightweight, intuitive interface for playing audio files with smart features like playback speed control, volume adjustment, and smooth track title scrolling β all wrapped in a stylish UI.
- π§ Play MP3, FLAC, WAV, OGG files from folders or single files
- π File browser with list display of tracks
βΆοΈ Pause, resume, stop with responsive controls- π Adjustable playback speed (0.5xβ1.5x)
- π Smooth progress bar seeking
- β³ Real-time time labels (
00:00 / 03:45) - π Repeat track toggle
- π Mute/unmute with volume memory
- π "Now Playing" banner with scrolling marquee for long titles
- πΎ Automatic save/load of last session (volume, speed, track, etc.)
- π¨ Stylish modern UI with custom icons and dark theme
- Python 3.8+
- PyQt6
- Mutagen (for metadata handling)
git clone https://github.com/Mohabdo21/mini-player.git
cd mini-player
pip install -r requirements.txtpython main.pyAlternatively, after installation:
mini-playerTo create a standalone executable:
pyinstaller app.specThis will generate a dist folder containing the executable. You can run it directly:
./dist/MiniPlayerYour settings (volume, speed, last folder, etc.) are saved automatically to
mini_player.ini.
The project follows a modular design pattern for better maintainability:
mini-player/
βββ main.py # Entry point script
βββ app.spec # PyInstaller specification
βββ LICENSE # License file
βββ pyproject.toml # Project configuration
βββ README.md # Project documentation
βββ requirements.txt # Dependencies
βββ setup.py # Setup script
βββ src/ # Source code
βββ __init__.py # Package initialization
βββ icons/ # Icon assets
βββ default_album.png # Default album art
βββ miniplayer/ # Main package
βββ __init__.py # Version info
βββ app.py # Application entry point
βββ core/ # Core functionality
β βββ __init__.py
β βββ audio_player.py # Audio playback engine
β βββ config_manager.py # Settings management
β βββ track_manager.py # Track list management
βββ ui/ # User interface components
β βββ __init__.py
β βββ main_window.py # Main application window
β βββ playlist_widget.py # Custom playlist widget
βββ utils/ # Utilities and helpers
βββ __init__.py
βββ helpers.py # Helper functions
-
core: Contains the business logic and data handling
audio_player.py: Core audio playback functionalityconfig_manager.py: Settings managementtrack_manager.py: Track list and file system operations
-
ui: User interface components
main_window.py: Main application windowplaylist_widget.py: Custom playlist widget
-
utils: Utility functions
helpers.py: Common helper functions
Settings are stored in mini_player.ini and include:
- Last opened folder and track
- Volume level
- Playback speed
- Repeat/mute toggle states
- Playlist management (save/load playlists)
- Drag-and-drop track queue
- Advanced album art fetching from metadata or online sources
- Audio visualizer or waveform view
- Mobile version using QtQuick/QML
MIT License β free to use, modify, and distribute.
