Every track we ingest from decks, Traxsource, Bandcamp or deejay needs a YouTube upload before it can be played. Picking it used to be one tuned number against one threshold, and nobody could say how often it was wrong — there was no labelled data. There is now: 101 matches judged by hand, each with the uploads a human confirmed are the track, plus a playlist of twelve somebody flagged as wrong. This is what that ground truth says.
Each row was a match the pipeline had already accepted and shipped. A human listened and judged it, then recorded every upload that really is the track. Replaying the new matcher over the same 40:
| the old pick was… | n | new: right | new: wrong | new: no match |
|---|---|---|---|---|
| correct | 70 | 56 | 14 | 0 |
| wrong | 31 | 27 | 2 | 2 |
Most of the top row is not a regression. Of the 16 counted wrong, 12 match our own track length to within two seconds and eleven of those are distributor "… - Topic" art tracks — correct picks that simply are not in the reviewer's list, which averages 1.01 uploads per label. Counting them as right puts the field model at 95 of 101. Four errors remain, and three of them pick something less than half our length.
The old scorer produced one number from string similarity, then multiplied it by four penalties
(×0.3 artist missing, ×0.6, ×0.35 mix conflict, ×0.5 remixer
conflict) and compared it to 0.75. The penalties compounded, every constant was fitted to the single case that
prompted it, and a long artist name could carry a match on its own while the title stopped mattering.
It now compares fields. Each one independently answers confirm, conflict or unknown, a candidate is rejected on a conflict in an identity field, and the survivors are ordered by how many fields corroborate — not by a weighted sum, so adding a field does not require re-tuning the others.
CONFIRMCONFLICTUNKNOWN A disagreement on duration is not evidence — only an agreement is. That asymmetry is the part the old single-number design could not express.
96% of the catalogue (9.18M of ~9.5M tracks) carries version_mix = "Original Mix".
The obvious idea is to put it in the query — you have the information, why not use it. Measured on 23 labelled
tracks with a known-correct video:
| query | correct video in top 8 | median rank |
|---|---|---|
Artist - Title | 22 / 23 | 1.2 |
Artist - Title (Original Mix) | 10 / 23 | 1.0 |
Twelve tracks lose their correct video from the results entirely, several of them from rank 1. "Original Mix" is not a property of the track — it is the absence of a version, and most uploads simply do not write it down. For a named version (Remix, Dub, Edit) the opposite holds, and the matcher already puts the versioned query first: the mix lives in its own column, so a search built from artist + title alone cannot surface a remix-only upload at all.
Our searches leave from 26 countries, so a plausible worry is that results are geo-localised and some of our "no match" rows are an accident of which exit was leased. Ten labelled tracks with a known-correct video, searched from five countries:
| exit | correct video found |
|---|---|
| Canada | 9 / 10 |
| Germany | 9 / 10 |
| Spain | 9 / 10 |
| United Kingdom | 9 / 10 |
| United States | 9 / 10 |
Identical, and the single miss is the same track everywhere. Result order does shift between countries, but the matcher ranks candidates by field agreement rather than by search position, so that does not reach the outcome. Buying exits in a particular country would buy nothing. What does matter is whether an exit clears the bot wall at all — a different problem with a different fix.
When a query finds nothing usable the matcher falls back through shorter variants — versioned, plain, lead-artist-only, title-only. That looks expensive and is not, because it stops at the first accepted candidate and most tracks only produce two distinct variants:
Artist - Title.So the ladder is a 23% overhead that rescues ~2.5%. Worth keeping at that price, and worth
re-measuring once the label set is bigger — the multi-artist case that motivated the lead-artist variant
(Noir, HRRSN - Perservere, where the full credit returns Gregorian chants and brown-noise videos)
is not represented in these 40 rows at all.
Every labelled row carries the confidence the old scorer gave it, so the labels can say what that number was worth. It splits the catalogue into two very different places:
| old score | labelled | wrong | ± (95%) | tracks in the catalogue |
|---|---|---|---|---|
| below 0.9 | 15 | 15 = 100% | ±0 | 267,810 |
| 0.9 – 1.0 | 4 | 25% | ±42 | 83,534 |
| exactly 1.0 | 82 | 18% | ±8 | 5,541,463 |
Below 0.9 every single labelled row was wrong — fifteen for fifteen. That band is not a grey zone, it is a broken one, and the 268k tracks in it can be re-matched sight unseen.
The 1.0 band is the opposite shape: only 18% wrong, but it holds 94% of the volume, so in raw count it hides around a million bad matches — far more than the low band. A "perfect" score never meant the upload contains our recording; it meant the strings matched.
Separately from the labelling tool, twelve tracks were dropped into a playlist called "Falsche YouTube match" — no verdicts, no reasons, just "this video is wrong". Collecting negatives that way costs one action per track, and the whole playlist replays as a test:
| outcome | n |
|---|---|
| now finds nothing — the track is hidden rather than played wrong | 8 |
| picks a different video | 4 |
| still returns the same wrong video | 0 |
Four of the twelve had scored exactly 1.0 under the old scorer, which is the same finding the label bands give, arrived at from a completely different direction.
Ground truth collected with the match-label tool · replayed through the shipped matcher, not a reimplementation of it · 2026-09-23 · 101 labels + a 12-track negative cohort