Lyrics Overlay (Tk) — Integrated Version + Lyric Delay & Stroked Text

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!`

Don‘t get me wrong, but I‘ve got a notion that there is some unresolved disparity between „sharing“ and „advertising“, haven‘t I?

Don’t worry, friend. I just haven’t figured out how to share the source code yet. I assure you that the current version is free of charge.

Don’t worry, friend. I just haven’t figured out how to share the source code yet. I assure you that the current version is free of charge.

1 Like

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.

1 Like

mAirList Lyrics Overlay (v0.9.7)

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”

Quick Start

bash

git clone https://github.com/a314602932/mAirlist-Lrc-plugin.git
cd mAirlist-Lrc-plugin
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python main.py

1 Like