🎧 YouTube Elo Tournament

Checking cloud sync…

Sheet sync not configured

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).

ThumbnailTitleChannel 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.

Load songs and press Start / Continue to begin.

Rankings

Sorted by Elo. RD bar shows uncertainty (green=confident, yellow=moderate, orange=uncertain).

Edit song data

Edit any field directly. Changes only take effect when you click Save changes. Elo/RD affect tournament ranking β€” edit with care.

IDTitleChannelURL EloRDMatchesElim?