Add /track/lyricsUrl (signed RPC, method name "tracklyricsUrl") plus
the CDN document fetch through the offline choke point. Wire shapes
were validated against live captures (2026-06-10) and diverge from the
inferred yaml: numeric track_id in the step-1 envelope, CDN document
wrapped in {translation_langs, publishers, writers, original}, "wsync"
word-synced discriminator instead of "lsync" (per-word timestamps),
plain lines as objects, and miss = HTTP 404 error body mapped to a
typed Ok(None) instead of an error. Unit tests deserialize fixture
excerpts of the captures; examples/lyrics_probe.rs is the read-only
live probe used for the capture.
Also expose qbz_credentials::load_oauth_token_from_file so a stale
keyring entry cannot shadow the authoritative encrypted token file.
cc
6 lines
259 B
JSON
6 lines
259 B
JSON
{
|
|
"track_id": 266725027,
|
|
"album_id": "gvcirtodd95kc",
|
|
"lyrics_url": "https://d12eggcejhfkay.cloudfront.net/v1.3/kc/95/gvcirtodd95kc/266725027.json?user_id=REDACTED&app_id=798273057&Expires=1781132109&Signature=REDACTED&Key-Pair-Id=KGUJDFL0NX9O"
|
|
}
|