I’d like to share a useful Python script I created for Mairlist that adds enhanced lyrics display capabilities. This is a comprehensive solution with several useful features:
Lyrics Overlay (Tk) — Integrated Version + Lyric Delay & Stroked Text
Key features:
Right-click menu with extensive options:
Settings…
Transparency adjustment
Always on top
Display modes (Scrolling / Dual-line)
Themes (Light / Dark / Neon)
Click-through (Windows)
Transparency mode (Color key)
Lyric delay adjustment
Web page LRC scraping…
Test text display
Exit
Title bar functionality:
Right-click the internal “title area” to show menu
Left-click to drag (works even in color key mode)
Enhanced visual rendering:
Canvas-based rendering
Text stroking (improves readability on light backgrounds/color key mode)
HTTP interface (using standard library ThreadingHTTPServer for stability):
/nowplaying?artist=%a&title=%b
Alternative: /nowplaying?np=%a|%b
Lyrics sources:
Local lyrics: stored in lyrics/Artist - Title.lrc/.txt
Online lyrics: from lrclib (with automatic saving)
Web page LRC scraping:
Paste web page URLs (e.g., xiaojiangclub)
Automatically extracts [mm:ss] sections
Saves as .lrc files
Dependency: Requires the requests library
This script provides a flexible, customizable way to display lyrics alongside Mairlist, with multiple options to adapt to different broadcasting or presentation scenarios. The transparency and click-through features are particularly useful for overlaying lyrics on other content.
Feel free to ask if you have any questions about setup or usage!`
You may either attach a file, using the upload button (upward arrow), whose extension may have to be altered in advance (and would have to be reinstated after download). Or, if the code is not too large, post it here, formatted as code per the </>-button.
mAirList Lyrics Overlay is a lightweight desktop overlay built with Python + PyQt5 that displays synchronized LRC lyrics, rotating album art, and playback status for tracks currently playing in mAirList.
The app listens for low-latency HTTP GET/POST callbacks from mAirList (via Logging rules or background scripts) and updates the on-screen display in real-time—no UDP required. It includes a simple settings dialog for fonts, colors, and feature toggles, along with a built-in small HTTP server for easy plug-and-play integration.
Features
Receives HTTP GET/POST from mAirList (supports multipart album art) at http://127.0.0.1:5005/nowplaying
Deduplication and state machine: Prevents duplicate refreshes and residual displays
LRC lyric parsing and synchronized display (supports multiple lines)
Rotating album art (displays a placeholder when no art is available)
Toggle for progress bar / timecode display
Settings panel (right-click → Settings) with immediate effect on “Apply”