feat: Lyrics-Funktion und Install-Script

- Lyrics-Ansicht mit Taste l (lrclib.net API)
- Install-Script fuer systemweite Installation
- README aktualisiert
This commit is contained in:
x3
2026-09-06 08:40:59 +00:00
parent 68f6e0ef84
commit e06542cb1d
4 changed files with 169 additions and 7 deletions
+38
View File
@@ -197,5 +197,43 @@ class SpotifyClient:
return self._get("/me")
class LyricsClient:
LRCLIB_URL = "https://lrclib.net/api"
def get_lyrics(self, track_name, artist_name, album_name=None, duration_ms=None):
import requests as req
params = {
"track_name": track_name,
"artist_name": artist_name,
}
if album_name:
params["album_name"] = album_name
if duration_ms:
params["duration"] = duration_ms // 1000
try:
resp = req.get(f"{self.LRCLIB_URL}/get", params=params, timeout=5)
if resp.status_code == 200:
data = resp.json()
return data.get("syncedLyrics") or data.get("plainLyrics")
except Exception:
pass
try:
resp = req.get(f"{self.LRCLIB_URL}/search", params={
"q": f"{track_name} {artist_name}"
}, timeout=5)
if resp.status_code == 200:
results = resp.json()
if results:
data = results[0]
return data.get("syncedLyrics") or data.get("plainLyrics")
except Exception:
pass
return None
class TokenExpired(Exception):
pass