feat(qobuz): parse the v10 embedded lyrics translation block

QobuzLyricsDocument gains the optional translation member (same content
union as original, new in API 10.0), the content DTOs become
Serialize+PartialEq so the lyrics cache can persist a translation
verbatim, and a lang() accessor exposes the content language. New
fixtures cover embedded translations of each type (wsync/lsync/plain),
the lyricsUrl envelope with translation_requested, empty
translation_langs (feature off), and 9.x documents (no translation).

km
This commit is contained in:
vicrodh committed 2026-07-22 19:11:28 -06:00
1 parent 26baeb0ffc
commit 9d7f9c6c17
5 files changed
+279 -11

No files matched your search

@@ -0,0 +1,23 @@
{
"album_id": "def456",
"track_id": 222222222,
"translation_langs": ["de"],
"publishers": [],
"writers": null,
"original": {
"type": "plain",
"lang": "en",
"lines": [
{"line": "Plain original one"},
{"line": "Plain original two"}
]
},
"translation": {
"type": "plain",
"lang": "de",
"lines": [
{"line": "Einfache Uebersetzung eins"},
{"line": "Einfache Uebersetzung zwei"}
]
}
}