Python Lyrics Player
A minimalistic, modern, and monochrome floating desktop lyrics visualizer built in Python with PyQt6. Designed as an artistic desktop installation rather than a traditional media player, Pyrics parses synchronized TTML subtitle files and floats lyrics upward across the screen in dynamic, frameless 4:3 aspect ratio panels.
- ✨ Key Features
- 🚀 Installation & Setup
- 📦 Bundling to Standalone Executable (.exe)
- 🌱 Contributing
- ✨ Support
- ⚖️ License
- Word-by-word Highlight (Position-Preserving): Words emerge incrementally inside a 4:3 aligned panel. Future words remain colored to match the background to guarantee the visible text stays centered without shifts.
- Alternating Floating Layout: Successive lyric lines spawn alternately on the left and right sides of your desktop screens with organic offsets to avoid robotic repetition.
- Smart Overlap Stacking: A collision-preventing physics velocity calculator adjusts spawn positions dynamically, ensuring overlapping fast-paced lines never collide.
- Contrast Themes & Custom Colors: Supports a solid black theme, a white inverted theme, a random mix theme, or customizable text and background colors via hex inputs and color pickers.
- Timeline Engine & Seek Controls: Play, pause, stop, seek (slider scrubbing), and adjust playback speed scales (
0.5x,1.0x,1.25x,1.5x,2.0x). - Import/Export Config: Save your typography, side margins, colors, and speeds to a JSON file and import them back at any time.
Make sure you have Python 3.11 or newer installed.
git clone https://github.com/abdipr/pyrics.git
cd pyricsInstall PyQt6:
pip install PyQt6Start the lyrics controller:
python main.pyYou can easily compile Pyrics into a single portable .exe binary for Windows.
Double-click the build.bat script in the project root folder. It will:
- Automatically install
PyInstaller. - Compile and package the application files.
- Bundle assets (
faviconandfonts). - Generate the executable at
dist/main.exe.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name. - Commit your changes:
git commit -m 'Add feature'. - Push to the branch:
git push origin feature-name. - Submit a pull request.
If you like this project, please star on this repository, thank you ⭐
You can support me by:
This project is licensed under the MIT License. See the LICENSE file for more information.
