the wire contract
One URL.
Two kinds of q.
This is an EverythingStar on-demand playlist. The game sends whatever is in the jukebox search field as q. A phrase searches the cache; a YouTube URL caches that one video and returns it.
https://everythingstar-youtube.happypaul55.com/ondemand.jsonThe two requests
EverythingStar debounces the jukebox field and sends a GET after two characters. It has a 30-second timeout. There is no API key and no custom header; the provider is plain CORS JSON.
GET /ondemand.json?q=never%20gonna%20give%20you%20up
→ { "schemaVersion": 1, "songs": [ …cached matches… ] }
GET /ondemand.json?q=https%3A%2F%2Fyoutube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ
→ { "schemaVersion": 1, "songs": [ …that one entry, now cached… ] }A text query never calls YouTube. A URL query is the one write path: the video is resolved, its best caption track is cached, and the entry is returned. The same URL on a later search is served from the cache.
Documents
GET /ondemand.json capability + a small recent shelf GET /songs/yt-:id.json song document, audio.source = "youtube" GET /charts/yt-:id/lyrics.json the lyrics chart
The chart is chartType: "lyrics": words and timings, no pitch and no singer score. EverythingStar offers Listen and Type. The video is the music, played through the official IFrame player; no audio is downloaded, extracted or proxied.
Timing quality
- word — the caption track has a time for every word.
- aligned — manual caption text matched to an auto-caption word track.
- line — cue times only; word times are estimated inside the line.
The provider adds timing, captionKind and language to its documents. EverythingStar ignores unknown fields; this site uses them to label the transcript. Chart word times are relative to the line; note times are absolute.
Caching, CORS and errors
Access-Control-Allow-Origin: *on every response, errors included.- Song and chart URLs carry
?v=<revision>, so a re-ingest or track switch busts the game’s browser cache. - Search answers are short-lived; a URL answer is
no-storebecause it writes. - Rate limits return
429withRetry-After. Fetch failures return502/503so the game offers Try again. - No caption track, no lyric lines, private, live or non-embeddable videos return
songs: []with areasonextension.
Enchor charts
The same site also serves a second on-demand provider forChorus Encore. It searches api.enchor.us — the public API the Bridge client uses — and returns.sng playlist entries. No page is scraped.
GET /enchor/ondemand.json?q=code%20monkey GET /enchor/ondemand.json?q=https%3A%2F%2Fenchor.us%2Fchart%2F<md5> GET /enchor/sng/<md5>.sng
The package URL is a CORS proxy for files.enchor.us, because that host does not send Access-Control-Allow-Origin and EverythingStar fetches the whole package. The proxy streams the file and forwards Range requests; it does not store the chart.
Suggested playlists
EverythingStar’s full contract is theplaylist API document. The siblingEverythingStar FOSS library is the file-backed alternative; this provider is the caption-backed one.