From ab705db9cd53d98829838f17f5aa131d3adb56c9 Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Sat, 10 Jan 2026 07:24:26 -0600 Subject: [PATCH] fix(lyrics): add User-Agent header and debug logging to LRCLIB requests LRCLIB API may require User-Agent header. Added debug logging to see raw response and parsing results. --- src-tauri/src/lyrics/providers.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/lyrics/providers.rs b/src-tauri/src/lyrics/providers.rs index 5ef26f077..ba1cfe77c 100644 --- a/src-tauri/src/lyrics/providers.rs +++ b/src-tauri/src/lyrics/providers.rs @@ -2,6 +2,7 @@ use reqwest::Client; use serde::Deserialize; +use serde_json; use urlencoding::encode; use super::{normalize, LyricsProvider}; @@ -128,20 +129,30 @@ async fn fetch_lrclib_get( ) -> Result, String> { let response = client .get("https://lrclib.net/api/get") + .header("User-Agent", "QBZ-Nix/1.0 (https://github.com/qbz-nix)") .query(&[("track_name", title), ("artist_name", artist)]) .send() .await .map_err(|e| format!("LRCLIB get request failed: {}", e))?; if !response.status().is_success() { + println!("[Lyrics] LRCLIB get returned status: {}", response.status()); return Ok(None); } - let item: LrclibItem = response - .json() - .await + // Get raw text first for debugging + let text = response.text().await + .map_err(|e| format!("LRCLIB get response text failed: {}", e))?; + + // Log if syncedLyrics is present in raw response + let has_synced = text.contains("syncedLyrics") && !text.contains("\"syncedLyrics\":null"); + println!("[Lyrics] LRCLIB get raw response has syncedLyrics: {}, len: {}", has_synced, text.len()); + + let item: LrclibItem = serde_json::from_str(&text) .map_err(|e| format!("LRCLIB get response parse failed: {}", e))?; + println!("[Lyrics] LRCLIB parsed - synced_lyrics present: {}", item.synced_lyrics.is_some()); + Ok(Some(item)) } @@ -153,6 +164,7 @@ async fn fetch_lrclib_search( let query = format!("{} {}", artist, title); let response = client .get("https://lrclib.net/api/search") + .header("User-Agent", "QBZ-Nix/1.0 (https://github.com/qbz-nix)") .query(&[("q", &query)]) .send() .await