Skip to content

Plugin LRCLib

Derrik Diener edited this page Jul 16, 2026 · 1 revision

LRCLib Plugin

Enabled by Default: Yes (Disable via SUPERNOVA_PLUGIN_LRCLIB=false)

Purpose

Provides the synchronized lyrics experience for the Fullscreen Player by fetching time-coded lyrics from the open-source LRCLib database.

Technical Internals

  1. Proxy Architecture: The Supernova backend proxies the requests to lrclib.net. This avoids Cross-Origin Resource Sharing (CORS) blocks in the browser and hides the client's IP from the external service.
  2. Matching: When a track plays, the frontend sends the track_name, artist_name, and album_name to the proxy. The backend constructs the exact query parameters needed.
  3. Security: The backend restricts the incoming JSON response payload size using an io.LimitReader (capped at 5MB) to protect the server's memory from unexpectedly massive payloads.
  4. Caching: The frontend implements a memory-cache dictionary to store previously fetched lyrics. If a user repeats a song, no external network request is made.

API Execution

  • GET /api/plugins/lrclib/lyrics?artist=<artist>&album=<album>&track=<track>

Clone this wiki locally