1) Load songs
Paste YouTube URLs or IDs (one per line).
Fill in channel names for the bar chart race (optional β leave blank to skip).
| Thumbnail | Title | Channel name |
|---|
or: Load from playlist (YouTube API)
Requires a YouTube Data API key.
2) Run Elo tournament
Stage system: 450β225β112β56β20β8βfinal.
Each stage: 6 matchesPlayed (3 group appearances) before cutoff.
Groups of 3β4 normally; groups of 3 when β€20 alive; 1v1 final when β€8.
Elo: K decays from 32β6 as matches accumulate.
RD (uncertainty): starts at Β±150, shrinks faster vs similar opponents.
Matchmaking: 70% Elo-close Β· 15% high-RD Β· 15% random.
No songs loaded.
3) Import / Export CSV
CSV columns: rank, id, title, url, elo, rd, matchesPlayed, eliminated
4) Bar chart race CSV
Columns: name Β· channel Β· thumbnail Β· match_0 Β· match_1 Β· β¦
Blank cells = song didn't play that match. Updated live in memory.
5) Cloud sync
Only used if this site is deployed with the included Cloudflare Pages Function + KV namespace (see README). Otherwise data just stays in this browser's local storage, same as before.
6) Edit data
Directly edit song titles, channels, Elo, RD, matches played, or eliminated status β no CSV round-trip needed.
Current stage number (used to figure out the next cutoff's MP threshold). Only change this if you're correcting old/imported data.
Current match
No tournament in progress.
Rankings
Sorted by Elo. RD bar shows uncertainty (green=confident, yellow=moderate, orange=uncertain).