From f4e3220ec3b75c3d7bc00126eb43cbed00749304 Mon Sep 17 00:00:00 2001 From: goatnath Date: Sun, 12 Jul 2026 18:45:38 +0530 Subject: [PATCH 1/6] Add spotify-lyrics plugin --- spotify-lyrics/README.md | 57 +++++++ spotify-lyrics/bar.luau | 36 +++++ spotify-lyrics/panel.luau | 119 +++++++++++++++ spotify-lyrics/plugin.toml | 23 +++ spotify-lyrics/spotify_lyrics_daemon.py | 190 ++++++++++++++++++++++++ spotify-lyrics/widget.luau | 107 +++++++++++++ 6 files changed, 532 insertions(+) create mode 100644 spotify-lyrics/README.md create mode 100644 spotify-lyrics/bar.luau create mode 100644 spotify-lyrics/panel.luau create mode 100644 spotify-lyrics/plugin.toml create mode 100644 spotify-lyrics/spotify_lyrics_daemon.py create mode 100644 spotify-lyrics/widget.luau diff --git a/spotify-lyrics/README.md b/spotify-lyrics/README.md new file mode 100644 index 00000000..7536a0eb --- /dev/null +++ b/spotify-lyrics/README.md @@ -0,0 +1,57 @@ +# Noctalia Synced Lyrics Plugin + +A seamless, time-synced scrolling lyrics panel for the Noctalia desktop shell. It integrates directly into your Noctalia bar and displays a beautifully formatted, auto-scrolling lyrics card when you click the `♫` icon. + +## Why it's great +* **Zero Configuration:** No Spotify `sp_dc` cookies, API keys, or web scraping required! It pulls lyrics from public databases like LRCLIB and NetEase automatically. +* **Blazing Fast:** Uses a lightweight Python background daemon that caches lyrics to your disk so subsequent plays load in 0ms. +* **Native Shell Integration:** Doesn't feel like a clunky third-party app. It uses Noctalia's native declarative UI framework for buttery smooth, theme-aware rendering. + +## Installation + +### 1. Install Dependencies +You need `playerctl` and the `syncedlyrics` python package. +```bash +# Arch Linux +sudo pacman -S playerctl +pip install syncedlyrics +``` + +### 2. Set up the Background Daemon +The daemon listens to your media player (Spotify, MPD, etc.) and fetches the lyrics. + +1. Copy the `spotify_lyrics_daemon.py` file to your preferred location (e.g., `~/.local/bin/`). +2. Set it up to run in the background. The recommended way is using a systemd user service: + +```ini +# ~/.config/systemd/user/noctalia-lyrics.service +[Unit] +Description=Noctalia Lyrics Daemon +After=graphical-session.target + +[Service] +ExecStart=/usr/bin/python3 /path/to/spotify_lyrics_daemon.py +Restart=always + +[Install] +WantedBy=default.target +``` +Start and enable the daemon: +```bash +systemctl --user daemon-reload +systemctl --user enable --now noctalia-lyrics.service +``` + +### 3. Enable the Noctalia Plugin +1. Copy the plugin folder to your Noctalia plugins directory: `~/.local/share/noctalia/plugins/spotify-lyrics/` +2. Enable the plugin: +```bash +noctalia msg plugins enable noctalia/spotify-lyrics +``` +3. Add the `lyrics` widget to your bar's layout in your `~/.local/state/noctalia/settings.toml` file (next to the `media` widget). + +```toml +start = [ "launcher", "workspaces", "media", "lyrics" ] +``` + +That's it! Play a song on Spotify and a `♫` icon will appear in your bar. Click it to view the synced lyrics. diff --git a/spotify-lyrics/bar.luau b/spotify-lyrics/bar.luau new file mode 100644 index 00000000..6eb7a5de --- /dev/null +++ b/spotify-lyrics/bar.luau @@ -0,0 +1,36 @@ +--!nonstrict +-- Minimal bar trigger: shows a small lyrics glyph next to the media widget. +-- Auto-hides when no music is playing. Click to toggle the lyrics panel. + +local function readState() + local content = noctalia.readFile("~/.cache/noctalia/lyrics/current.json") + if not content then return nil end + local state, _ = noctalia.json.decode(content) + return state +end + +local tickCount = 0 + +function update() + noctalia.setUpdateInterval(100) + tickCount = tickCount + 1 + noctalia.state.set("lyricsTick", tickCount) + + local state = readState() + + if not state or state.status == "Stopped" or state.status == "" then + barWidget.setVisible(false) + return + end + + barWidget.setVisible(true) + barWidget.setGlyph("music") + barWidget.setText("") + barWidget.setGlyphColor("primary") + + barWidget.setTooltip(state.current or "...") +end + +function onClick() + noctalia.togglePanel("noctalia/spotify-lyrics:lyrics-panel") +end diff --git a/spotify-lyrics/panel.luau b/spotify-lyrics/panel.luau new file mode 100644 index 00000000..117acb5e --- /dev/null +++ b/spotify-lyrics/panel.luau @@ -0,0 +1,119 @@ +--!nonstrict +-- Lyrics panel: 3-line synced view (prev / current / next). +-- Anchored to the bar widget so it feels like part of the media controls. + +local function readState() + local content = noctalia.readFile("~/.cache/noctalia/lyrics/current.json") + if not content then return nil end + local state, _ = noctalia.json.decode(content) + return state +end + +local function render() + local state = readState() + + -- No music + if not state or state.status == "Stopped" or state.status == "" then + panel.render(ui.column({ flexGrow = 1, gap = 8, align = "stretch", justify = "center", padding = 16 }, { + ui.row({ justify = "center" }, { ui.glyph({ name = "music", size = 28, color = "on_surface/0.2" }) }), + ui.label({ text = "No music playing", fontSize = 14, fontWeight = "medium", color = "on_surface/0.25", textAlign = "center" }), + })) + return + end + + -- Paused + if state.status == "Paused" then + panel.render(ui.column({ flexGrow = 1, gap = 6, align = "stretch", justify = "center", padding = 16 }, { + ui.row({ gap = 6, justify = "center", align = "center" }, { + ui.glyph({ name = "player-pause", size = 16, color = "on_surface/0.3" }), + ui.label({ + text = `{state.title or "Paused"} — {state.artist or ""}`, + fontSize = 12, + fontWeight = "medium", + color = "on_surface/0.4", + textAlign = "center", + wrap = true, + }), + }), + ui.label({ + text = state.current or "Paused", + fontSize = 18, + fontWeight = "bold", + color = "on_surface/0.6", + textAlign = "center", + wrap = true, + }), + })) + return + end + + -- ── Playing ── + + local rows = {} + + -- Track header + if state.title and state.artist then + table.insert(rows, ui.column({ gap = 4, align = "stretch" }, { + ui.row({ justify = "center" }, { ui.glyph({ name = "music", size = 14, color = "primary/0.7" }) }), + ui.label({ + text = `{state.title} • {state.artist}`, + fontSize = 12, + fontWeight = "medium", + color = "primary/0.7", + textAlign = "center", + wrap = true, + }), + })) + table.insert(rows, ui.box({ height = 1, fill = "on_surface/0.06" })) + end + + -- Previous line (faded) + local prevText = state.prev or "" + if prevText ~= "" then + table.insert(rows, ui.label({ + text = prevText, + fontSize = 14, + fontWeight = "medium", + color = "on_surface/0.4", + wrap = true, + textAlign = "center", + })) + else + table.insert(rows, ui.box({ height = 16 })) + end + + -- Current line (bold, prominent) + table.insert(rows, ui.label({ + text = state.current or "...", + fontSize = 18, + fontWeight = "bold", + color = "on_surface/0.95", + wrap = true, + textAlign = "center", + })) + + -- Next line (faded) + local nextText = state.next or "" + if nextText ~= "" then + table.insert(rows, ui.label({ + text = nextText, + fontSize = 14, + fontWeight = "medium", + color = "on_surface/0.4", + wrap = true, + textAlign = "center", + })) + else + table.insert(rows, ui.box({ height = 16 })) + end + + panel.render(ui.column({ flexGrow = 1, gap = 8, align = "stretch", justify = "center", padding = 16 }, rows)) +end + +noctalia.state.watch("lyricsTick", function(_value) + render() +end) + +function onOpen(_context) + render() +end diff --git a/spotify-lyrics/plugin.toml b/spotify-lyrics/plugin.toml new file mode 100644 index 00000000..7d3c652c --- /dev/null +++ b/spotify-lyrics/plugin.toml @@ -0,0 +1,23 @@ +id = "noctalia/spotify-lyrics" +name = "Spotify Lyrics" +version = "1.2.0" +min_noctalia = "5.0.0" +author = "goatnath" +license = "MIT" +dependencies = [] +tags = ["music", "lyrics"] +icon = "music" +description = "Time-synced lyrics panel linked to the media widget." + +# Minimal bar trigger: tiny glyph icon next to the media widget. +# Auto-hides when nothing is playing. Click to open the lyrics panel. +[[widget]] +id = "lyrics" +entry = "bar.luau" + +# Lyrics panel: 3-line synced view anchored near the media area. +[[panel]] +id = "lyrics-panel" +entry = "panel.luau" +width = 460 +height = 200 diff --git a/spotify-lyrics/spotify_lyrics_daemon.py b/spotify-lyrics/spotify_lyrics_daemon.py new file mode 100644 index 00000000..bccd886b --- /dev/null +++ b/spotify-lyrics/spotify_lyrics_daemon.py @@ -0,0 +1,190 @@ +import os +import time +import json +import subprocess +import threading +import syncedlyrics +from pathlib import Path + +# Config +CACHE_DIR = Path.home() / ".cache" / "noctalia" / "lyrics" +CACHE_DIR.mkdir(parents=True, exist_ok=True) +CURRENT_STATE_FILE = CACHE_DIR / "current.json" + +class SpotifyLyricsDaemon: + def __init__(self): + self.lyrics_cache = {} # song_key -> list of lines + self.fetching_keys = set() # Tracks keys currently fetching in the background + + def clean_filename(self, name): + return "".join(c for c in name if c.isalnum() or c in (" ", "_", "-")).strip() + + def get_parsed_lyrics(self, title, artist): + song_key = f"{artist} - {title}" + if song_key in self.lyrics_cache: + return self.lyrics_cache[song_key] + + # Check local disk cache first + safe_name = self.clean_filename(song_key) + lrc_file = CACHE_DIR / f"{safe_name}.lrc" + + if lrc_file.exists(): + parsed = self.load_lrc_file(lrc_file) + self.lyrics_cache[song_key] = parsed + return parsed + + # Fetch from syncedlyrics asynchronously to prevent daemon thread lag + if song_key not in self.fetching_keys: + self.fetching_keys.add(song_key) + threading.Thread( + target=self._async_fetch_lyrics, + args=(song_key, lrc_file), + daemon=True + ).start() + + return [] + + def _async_fetch_lyrics(self, song_key, lrc_file): + try: + print(f"[Daemon] Fetching lyrics in background for: {song_key}...") + lrc_text = syncedlyrics.search(song_key, providers=["NetEase", "Lrclib"]) + if lrc_text: + with open(lrc_file, "w", encoding="utf-8") as f: + f.write(lrc_text) + + parsed = self.parse_lrc_text(lrc_text) + self.lyrics_cache[song_key] = parsed + print(f"[Daemon] Fetch completed for: {song_key}") + else: + print(f"[Daemon] No lyrics found online for: {song_key}") + except Exception as e: + print(f"[Daemon] Error fetching lyrics for {song_key}: {e}") + finally: + self.fetching_keys.discard(song_key) + + def parse_lrc_text(self, lrc_text): + parsed = [] + for line in lrc_text.splitlines(): + # Format: [mm:ss.xx] Text + if line.startswith("[") and "]" in line: + parts = line.split("]", 1) + time_part = parts[0].replace("[", "").strip() + text = parts[1].strip() + + try: + # mm:ss.xx or mm:ss + if "." in time_part: + min_sec, hund = time_part.split(".") + hund_val = int(hund) * 10 if len(hund) == 2 else int(hund) + else: + min_sec = time_part + hund_val = 0 + + minutes, seconds = min_sec.split(":") + time_ms = ((int(minutes) * 60) + int(seconds)) * 1000 + hund_val + parsed.append({"time_ms": time_ms, "text": text}) + except Exception: + pass + return parsed + + def load_lrc_file(self, lrc_file): + try: + with open(lrc_file, "r", encoding="utf-8") as f: + return self.parse_lrc_text(f.read()) + except Exception as e: + print(f"[Daemon] Error reading LRC file: {e}") + return [] + + def get_player_status(self): + try: + # Query active players + players = subprocess.check_output(["playerctl", "-l"], stderr=subprocess.DEVNULL).decode("utf-8").strip().splitlines() + if not players: + return None + + # Prioritize Spotify + player_name = "spotify" if "spotify" in players else players[0] + + # Query all metadata in ONE execution using custom delimiters to eliminate subprocess latency + output = subprocess.check_output([ + "playerctl", "-p", player_name, "metadata", + "--format", "{{status}}|||{{position}}|||{{title}}|||{{artist}}" + ], stderr=subprocess.DEVNULL).decode("utf-8").strip() + + parts = output.split("|||") + if len(parts) >= 4: + status, pos_us, title, artist = parts[0], parts[1], parts[2], parts[3] + + # Position is in microseconds (us), convert to milliseconds (ms) + position_ms = int(int(pos_us) / 1000) + + return { + "status": status, + "position_ms": position_ms, + "title": title, + "artist": artist + } + except Exception: + pass + return None + + def run(self): + print("[Daemon] Starting Universal lyrics cache daemon...") + + while True: + player = self.get_player_status() + + if not player or not player["title"]: + # Write empty/inactive state + empty_state = {"status": "Stopped"} + with open(CURRENT_STATE_FILE, "w", encoding="utf-8") as f: + json.dump(empty_state, f) + time.sleep(1.0) + continue + + title = player["title"] + artist = player["artist"] + + lyrics_lines = self.get_parsed_lyrics(title, artist) + + # Find active line + active_idx = -1 + pos_ms = player["position_ms"] + + for i, line in enumerate(lyrics_lines): + if pos_ms >= line["time_ms"]: + active_idx = i + else: + break + + # Get surrounding lines + prev_prev = lyrics_lines[active_idx - 2]["text"] if active_idx >= 2 else "" + prev = lyrics_lines[active_idx - 1]["text"] if active_idx >= 1 else "" + current = lyrics_lines[active_idx]["text"] if active_idx >= 0 else "..." + next_line = lyrics_lines[active_idx + 1]["text"] if active_idx >= 0 and active_idx + 1 < len(lyrics_lines) else "" + next_next = lyrics_lines[active_idx + 2]["text"] if active_idx >= 0 and active_idx + 2 < len(lyrics_lines) else "" + + state = { + "status": player["status"], + "title": title, + "artist": artist, + "prev_prev": prev_prev, + "prev": prev, + "current": current, + "next": next_line, + "next_next": next_next + } + + # Save state + with open(CURRENT_STATE_FILE, "w", encoding="utf-8") as f: + json.dump(state, f) + + # Update more frequently if playing to maintain tight sync + if player["status"] == "Playing": + time.sleep(0.1) # Faster updates (100ms) for ultra-tight sync + else: + time.sleep(1.0) + +if __name__ == "__main__": + daemon = SpotifyLyricsDaemon() + daemon.run() diff --git a/spotify-lyrics/widget.luau b/spotify-lyrics/widget.luau new file mode 100644 index 00000000..c4b7a402 --- /dev/null +++ b/spotify-lyrics/widget.luau @@ -0,0 +1,107 @@ +--!nonstrict +-- Spotify Lyrics desktop widget. +-- Reads current lyrics state written by the Python daemon. +-- Displays 3 lines: previous → current (highlighted) → next. + +local function render(lyricsState) + -- When idle or paused, show a minimal status indicator + if not lyricsState or lyricsState.status == "Stopped" or lyricsState.status == "" then + desktopWidget.render(ui.column({ gap = 8, align = "center" }, { + ui.glyph({ name = "music", size = 28, color = "on_surface/0.3" }), + ui.label({ + text = "No music playing", + fontSize = 16, + fontWeight = "medium", + color = "on_surface/0.3", + }), + })) + return + end + + if lyricsState.status == "Paused" then + desktopWidget.render(ui.column({ gap = 8, align = "center" }, { + ui.glyph({ name = "player-pause", size = 22, color = "on_surface/0.4" }), + ui.label({ + text = lyricsState.current or "Paused", + fontSize = 22, + fontWeight = "bold", + color = "on_surface/0.5", + }), + })) + return + end + + -- ── Playing: render 3-line synced lyrics ── + + local rows = {} + + -- Track info: small, subtle line at the top + if lyricsState.title and lyricsState.artist then + table.insert(rows, ui.row({ gap = 6, align = "center" }, { + ui.glyph({ name = "music", size = 12, color = "primary/0.7" }), + ui.label({ + text = `{lyricsState.title} — {lyricsState.artist}`, + fontSize = 11, + fontWeight = "medium", + color = "primary/0.6", + }), + })) + end + + -- Thin separator + table.insert(rows, ui.box({ height = 1, fill = "on_surface/0.08" })) + + -- Previous line (dimmed) + local prevText = lyricsState.prev or "" + if prevText ~= "" then + table.insert(rows, ui.label({ + text = prevText, + fontSize = 18, + fontWeight = "normal", + color = "on_surface/0.3", + })) + else + table.insert(rows, ui.box({ height = 18 })) -- spacer to keep layout stable + end + + -- Current line (bold, large, highlighted) + local currentText = lyricsState.current or "..." + table.insert(rows, ui.label({ + text = currentText, + fontSize = 26, + fontWeight = "bold", + color = "on_surface", + })) + + -- Next line (dimmed) + local nextText = lyricsState.next or "" + if nextText ~= "" then + table.insert(rows, ui.label({ + text = nextText, + fontSize = 18, + fontWeight = "normal", + color = "on_surface/0.3", + })) + else + table.insert(rows, ui.box({ height = 18 })) -- spacer + end + + desktopWidget.render(ui.column({ gap = 10, align = "center" }, rows)) +end + +function update() + -- 100ms refresh for tight sync + noctalia.setUpdateInterval(100) + + local path = "~/.cache/noctalia/lyrics/current.json" + local content = noctalia.readFile(path) + if content then + local state, err = noctalia.json.decode(content) + if state then + render(state) + return + end + end + + render(nil) +end From 5278a33943fbfc8e5dd7439ed06914b7a08a5ec3 Mon Sep 17 00:00:00 2001 From: goatnath Date: Tue, 21 Jul 2026 01:57:22 +0530 Subject: [PATCH 2/6] fix(spotify-lyrics): resolve race conditions and add plugin_api --- spotify-lyrics/plugin.toml | 1 + spotify-lyrics/spotify_lyrics_daemon.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spotify-lyrics/plugin.toml b/spotify-lyrics/plugin.toml index 7d3c652c..ae322108 100644 --- a/spotify-lyrics/plugin.toml +++ b/spotify-lyrics/plugin.toml @@ -1,6 +1,7 @@ id = "noctalia/spotify-lyrics" name = "Spotify Lyrics" version = "1.2.0" +plugin_api = 1 min_noctalia = "5.0.0" author = "goatnath" license = "MIT" diff --git a/spotify-lyrics/spotify_lyrics_daemon.py b/spotify-lyrics/spotify_lyrics_daemon.py index bccd886b..a0a571b5 100644 --- a/spotify-lyrics/spotify_lyrics_daemon.py +++ b/spotify-lyrics/spotify_lyrics_daemon.py @@ -137,8 +137,10 @@ def run(self): if not player or not player["title"]: # Write empty/inactive state empty_state = {"status": "Stopped"} - with open(CURRENT_STATE_FILE, "w", encoding="utf-8") as f: + tmp_file = CURRENT_STATE_FILE.with_suffix('.tmp') + with open(tmp_file, "w", encoding="utf-8") as f: json.dump(empty_state, f) + tmp_file.replace(CURRENT_STATE_FILE) time.sleep(1.0) continue @@ -176,8 +178,10 @@ def run(self): } # Save state - with open(CURRENT_STATE_FILE, "w", encoding="utf-8") as f: + tmp_file = CURRENT_STATE_FILE.with_suffix('.tmp') + with open(tmp_file, "w", encoding="utf-8") as f: json.dump(state, f) + tmp_file.replace(CURRENT_STATE_FILE) # Update more frequently if playing to maintain tight sync if player["status"] == "Playing": From afd281ea067d133be36c340cbc7e29affc6b277e Mon Sep 17 00:00:00 2001 From: goatnath Date: Tue, 21 Jul 2026 02:03:34 +0530 Subject: [PATCH 3/6] fix(spotify-lyrics): update plugin_api to 3 --- spotify-lyrics/plugin.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spotify-lyrics/plugin.toml b/spotify-lyrics/plugin.toml index ae322108..4d291b6d 100644 --- a/spotify-lyrics/plugin.toml +++ b/spotify-lyrics/plugin.toml @@ -1,7 +1,7 @@ id = "noctalia/spotify-lyrics" name = "Spotify Lyrics" version = "1.2.0" -plugin_api = 1 +plugin_api = 3 min_noctalia = "5.0.0" author = "goatnath" license = "MIT" From afc2aff85b9d408b7ad32f226a8212e99cd1400e Mon Sep 17 00:00:00 2001 From: goatnath Date: Tue, 21 Jul 2026 02:19:28 +0530 Subject: [PATCH 4/6] fix(spotify-lyrics): resolve github actions validation errors --- spotify-lyrics/README.md | 16 ++++++++++++---- spotify-lyrics/plugin.toml | 3 +-- spotify-lyrics/thumbnail.webp | Bin 0 -> 30554 bytes spotify-lyrics/translations/en.json | 5 +++++ 4 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 spotify-lyrics/thumbnail.webp create mode 100644 spotify-lyrics/translations/en.json diff --git a/spotify-lyrics/README.md b/spotify-lyrics/README.md index 7536a0eb..2ae671e1 100644 --- a/spotify-lyrics/README.md +++ b/spotify-lyrics/README.md @@ -7,7 +7,15 @@ A seamless, time-synced scrolling lyrics panel for the Noctalia desktop shell. I * **Blazing Fast:** Uses a lightweight Python background daemon that caches lyrics to your disk so subsequent plays load in 0ms. * **Native Shell Integration:** Doesn't feel like a clunky third-party app. It uses Noctalia's native declarative UI framework for buttery smooth, theme-aware rendering. -## Installation +## Plugin +- **Id:** `noctalia/spotify-lyrics` +- **Widgets:** + - `lyrics`: The bar icon that toggles the lyrics panel. +- **Panels:** + - `lyrics-panel`: The scrolling lyrics panel. + - To toggle it manually via IPC, run: `noctalia msg panel-toggle noctalia/spotify-lyrics:lyrics-panel` + +## Usage ### 1. Install Dependencies You need `playerctl` and the `syncedlyrics` python package. @@ -43,12 +51,12 @@ systemctl --user enable --now noctalia-lyrics.service ``` ### 3. Enable the Noctalia Plugin -1. Copy the plugin folder to your Noctalia plugins directory: `~/.local/share/noctalia/plugins/spotify-lyrics/` -2. Enable the plugin: +1. Install this plugin from the plugin manager or download the folder to `~/.local/share/noctalia/plugins/spotify-lyrics/`. +2. Enable the plugin via CLI: ```bash noctalia msg plugins enable noctalia/spotify-lyrics ``` -3. Add the `lyrics` widget to your bar's layout in your `~/.local/state/noctalia/settings.toml` file (next to the `media` widget). +3. Add the `lyrics` widget to your bar's layout in your `~/.local/state/noctalia/settings.toml` (next to the `media` widget). ```toml start = [ "launcher", "workspaces", "media", "lyrics" ] diff --git a/spotify-lyrics/plugin.toml b/spotify-lyrics/plugin.toml index 4d291b6d..595a65d6 100644 --- a/spotify-lyrics/plugin.toml +++ b/spotify-lyrics/plugin.toml @@ -2,11 +2,10 @@ id = "noctalia/spotify-lyrics" name = "Spotify Lyrics" version = "1.2.0" plugin_api = 3 -min_noctalia = "5.0.0" author = "goatnath" license = "MIT" dependencies = [] -tags = ["music", "lyrics"] +tags = ["music"] icon = "music" description = "Time-synced lyrics panel linked to the media widget." diff --git a/spotify-lyrics/thumbnail.webp b/spotify-lyrics/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..92c783cd1dafdc9b694c2c8d5c6fc78d7bef0d1d GIT binary patch literal 30554 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�_dr8u0z= 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 t;e2>ApkixP Date: Tue, 21 Jul 2026 02:22:08 +0530 Subject: [PATCH 5/6] fix(spotify-lyrics): resize thumbnail to 960x540 to fix validation error --- spotify-lyrics/thumbnail.webp | Bin 30554 -> 19514 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/spotify-lyrics/thumbnail.webp b/spotify-lyrics/thumbnail.webp index 92c783cd1dafdc9b694c2c8d5c6fc78d7bef0d1d..f4b412c09e9cd38d78a106da13866cddc074c42a 100644 GIT binary patch literal 19514 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≫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 literal 30554 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�_dr8u0z= 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 t;e2>ApkixP Date: Tue, 21 Jul 2026 16:15:44 +0530 Subject: [PATCH 6/6] fix(spotify-lyrics): bump version to 1.2.1 --- spotify-lyrics/plugin.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spotify-lyrics/plugin.toml b/spotify-lyrics/plugin.toml index 595a65d6..2ad0ccbc 100644 --- a/spotify-lyrics/plugin.toml +++ b/spotify-lyrics/plugin.toml @@ -1,6 +1,6 @@ id = "noctalia/spotify-lyrics" name = "Spotify Lyrics" -version = "1.2.0" +version = "1.2.1" plugin_api = 3 author = "goatnath" license = "MIT"