ITADN

[Feature]: Expand lyrics sources

#359ClosedUMCEKO 创建于 2026-06-09
enhancement
U
UMCEKOcommented
### What problem are you trying to solve? Most songs come back with no lyrics. We are using lrclib and it's missing a large chunk of the catalogue, especially non-English tracks and anything obscure. We want broader coverage by adding more providers, and control over how they're chosen rather than a single hardcoded order. ### Proposed solution Add three more providers behind the existing `Lyrics` enum (so synced vs plain keeps working) and make the fallback order configurable: - **NetEase Cloud Music** (`music.163.com/api/song/lyric`) — free, no auth, returns synced LRC (often word-level). Best coverage boost, strong on non-English. - **YouTube Music lyrics** — reuse the InnerTube path kopuz already has: lyrics browseId from the `next`/watch response → `browse`. Exact-track match (no fuzzy artist/title), but plain text only. YT-tracks only. - **Paxsenix** — Musixmatch-backed aggregator, plain/synced. ### Alternatives considered On top of the providers: - **Preference order**: a user-configurable ordered list of enabled sources (config field, e.g. `lyrics_provider_order: Vec<LyricsProvider>`), walked in order until one returns a hit. Replaces the current hardcoded fallthrough. - **Selection conditions**: rules for *which* result wins beyond "first non-empty" — e.g. prefer synced over plain, require a duration match within N seconds (lrclib/NetEase return track length), prefer the exact-match YT source for YT tracks, and optionally keep searching past a plain-text hit if a later provider can supply synced. ### Area Other ### Additional context _No response_
关闭于 2026-06-27 0 条评论