How LikeThisSong works
What actually happens between pasting a link and seeing recommendations — including the honest limits of what it can do.
1. From a YouTube link to a track
Pasting a link starts a short pipeline, and each step is shown to you as it runs (url normalization metadata retrieval title parsing entity resolution):
- The URL is normalized to a canonical video ID, and an embed link (
youtube-nocookie.com) is generated so you can listen without us ever touching the audio stream. - Video metadata — title, channel, duration, description — is fetched from YouTube's own oEmbed endpoint and, if a Data API key is configured, its Data API. Both are YouTube's documented, intended integration surface, not a workaround.
- The title is parsed to guess an artist and track name. Titles vary wildly ("Artist - Track (Official Video)" parses cleanly; a vlog title with music playing in the background doesn't), so this step is reported honestly as high or low confidence rather than silently guessing.
- The guessed artist/title is looked up against MusicBrainz, the open music encyclopedia, to resolve it to a canonical recording. This is where a real identity — not just a string — comes from.
- You confirm the match (or search manually, or pick a timestamp if the video is long and might contain more than one song). Nothing is treated as "identified" until you've confirmed it.
Some videos are genuinely harder than others: without a YouTube Data API key, duration can't be used as corroborating evidence, so confidence tends to land in the "pick one" range rather than an automatic high-confidence match — that's the system being honest about a real limitation, not a bug. Long videos with no chapter list and an uninformative title may not be resolvable at all without you telling us where the song starts.
2. How recommendations are generated
Once a track is confirmed, independent sources are asked for similar tracks:
- MusicBrainz genre/style tags — community-contributed descriptive tags on the track (or, when a specific recording has none, its artist). A keyless, always-on signal — and, for niche or underground genres, often the only real signal available (Last.fm has no coverage for every scene, and ListenBrainz's data is currently unpopulated — see below). For those genres, we sample a weighted-random slice of a larger candidate pool rather than always returning the same fixed top results, specifically so two related tracks in a small, tightly-tagged community don't just recommend the same handful of songs back and forth at each other. It's still weighted toward genuine relevance, not a shuffle — some overlap between closely related searches is expected and honest, not a bug.
- ListenBrainz — an open, keyless dataset of what people listened to alongside this track. Kept wired in, but honestly: live testing found its similar-recordings data appears unpopulated even for ListenBrainz's own most-listened recording sitewide, so in practice it contributes nothing today — see
docs/risks.mditem 6 if you want the full investigation. - Last.fm — the same idea, from Last.fm's listening data, active on this deployment. Results explicitly say "per listening history on Last.fm" when this source contributed.
- AcousticBrainz — a historical, precomputed audio-analysis lookup. See section 4.
- Enhanced Audio Analysis (opt-in, Beta) — live tempo/key captured from your own microphone. See section 5.
Results are merged: the same song surfaced by more than one independent source ranks higher (agreement across genuinely different methods is real evidence), a different recording by the same artist is allowed but penalized rather than hidden, and you can nudge results toward more obscure or more popular picks, or exclude an artist entirely.
Each card also shows a qualitative match badge (Strong match, Good match, or Loose match) built from the same composite ranking score used to order the list. It's deliberately a band, not a raw percentage — the underlying number is a relative ranking signal within one request's results, not a calibrated "this is N% similar" measurement, and presenting it as a bare percentage would overclaim precision it doesn't have.
A "More songs" button appears below the list when there might be more to find — clicking it asks the same sources for a larger pool, not just a re-sort of what's already showing. It stops appearing once a request comes back with fewer new results than asked for, which means the sources have run dry for this track rather than there being a bug.
3. Where the "▶ preview" on a recommendation comes from
Recommendations only ever carry a MusicBrainz identity (an artist and a track name, sometimes a MusicBrainz recording ID) — nothing about a specific YouTube video. Clicking ▶ preview triggers a YouTube search for that artist and track, on demand, right then — nothing is pre-loaded or resolved in advance for cards you haven't clicked.
- The first matching result is embedded via the same
youtube-nocookie.complayer used for the track you originally identified — the same compliant, YouTube-sanctioned playback surface, not a different mechanism. - That search result is not verified against the recording the way your original identification is. A cover, a lyric video, or an unrelated upload with a similar title can occasionally surface — treat the preview as a best-effort pointer, not a confirmed match.
- Results are cached once resolved, so previewing the same track again (by you or anyone else) is instant and doesn't repeat the search — this is what keeps the feature within YouTube's daily search quota at real traffic.
- If no API key is configured for this deployment, or the daily search quota is exhausted, clicking preview says so honestly rather than silently doing nothing.
4. What "AcousticBrainz analysis" actually means
This does not analyze the audio of the video you paste, in real time or otherwise. It looks up whether an independent, historical audio analysis already exists for that exact recording, in a public dataset published by AcousticBrainz (a now-dormant MusicBrainz sister project — its crowd-submission pipeline stopped in 2022, but its published data and read API are still live).
When a lookup succeeds for both the track you confirmed and a candidate, four things are compared:
- Tempo — checked at 1×, 2×, and 0.5× the detected BPM, since tempo estimators commonly misread a track at half or double its real speed.
- Musical key — identical keys score highest, followed by parallel (same tonic, major↔minor), relative (same key signature), and dominant/subdominant (one step apart on the circle of fifths) relationships; unrelated keys count as no match, not a fading partial score.
- Coarse genre family — a broad category (electronic, rock, pop, and similar) from an audio classifier, not a human tag.
- Instrumental vs. vocal.
A few fields in the raw dataset — danceability, mood, and vocalist gender — are deliberately not used. Spot-checking them against known tracks during development found them unreliable (one all-instrumental track was scored 100% confident "not danceable" and 62% confident "female" vocals). Coverage is real but partial: nothing released after roughly 2022 has any data, and a candidate without coverage simply doesn't get this signal — it's never treated as a strike against it.
5. Standard vs. Enhanced Audio Analysis
Standard mode (always on) never touches the actual audio of the video you paste — it relies on metadata, community tags, listening relationships, and whatever historical AcousticBrainz coverage exists (section 4). It's fast and works for any resolvable video.
Enhanced Audio Analysis is a separate, opt-in, off-by-default toggle that appears once a track is confirmed. When you turn it on:
- You play the track through an embedded player shown right there, and your device's microphone listens for about 18 seconds — the same idea real song-recognition apps like Shazam use: a brief, user-initiated capture of whatever's playing, not a copy of the track being handed to a server.
- Tempo and musical key are extracted entirely on your device, in your browser. The captured audio is never uploaded — only the resulting numbers (a BPM, a key, and how confident the extraction was) are sent to our server.
- Those numbers are compared against candidates' existing AcousticBrainz data, the same comparison AcousticBrainz-only matching already does. A recommendation genuinely influenced by this gets a "Live audio analyzed" badge — never shown unless it actually was.
Be honest about the scope: this captures tempo and key only, not timbre, structure, instrumentation, or anything deeper — a lightweight, on-device analysis has a real ceiling. A microphone capture of whatever's coming out of your speakers is also inherently noisier than a clean audio file (room sound, speaker/mic quality), so a capture that's too quiet, too short, or too ambiguous is simply discarded rather than guessed at — you may sometimes see it report nothing usable, which is the system declining to fake confidence, not a bug. And, like Stage 3 recognition-provider support, this rests on a considered, industry-precedented product posture rather than a legal certainty reviewed by counsel — see the architecture decision behind it for the full reasoning.
6. Confidence and missing information
- Some tracks have far richer data than others — a lesser-known track may only have one working signal source, or none.
- Missing data is never treated as a negative match. A candidate that simply has no AcousticBrainz coverage isn't penalized for it.
- Confidence scores describe how sure the system is, not how sure it should be — they're estimates, not certainty.
- Different sources can and do disagree; multi-source agreement is what pushes a result up, not any single source's opinion.
- A manual search or timestamp correction improves the current lookup only — it doesn't retrain anything or change how the next person's search behaves.
7. Why we don't just extract the audio from the video ourselves
Computing tempo, key, timbre, or genre directly from the video you paste would require obtaining that video's actual audio samples. Doing that by downloading or extracting audio from YouTube (the common approach, via tools like yt-dlp) sits in a genuine legal gray zone: YouTube's Terms of Service restrict downloading content outside the mechanisms YouTube itself provides, and this project has deliberately chosen not to build around that restriction — see the compliance decision behind that. No unauthorized extraction happens anywhere in this codebase, on purpose. Enhanced Audio Analysis (section 5) sidesteps this question entirely rather than answering it: it never touches the video's audio stream at all, only whatever your own microphone happens to pick up when you choose to play it.
8. Privacy
- No audio is ever downloaded from YouTube, or streamed through or stored by our servers.
- If you use Enhanced Audio Analysis, your microphone audio is processed entirely on your own device and is never uploaded — only the resulting tempo/key numbers are sent to us, and nothing is recorded.
- There's no login and no stored email or payment information — nothing in this product currently requires an account.
- A search creates a job record keyed by a random ID, not anything tied to you personally.
- Thumbs up/down feedback is tied to that job's recommendations, not to a personal profile.
- Your "Recent searches" list lives entirely in this browser's local storage — it's never sent to our servers, isn't synced across devices, and a "Clear" button on that list removes it immediately.
9. Limitations, honestly
- Covers, live recordings, remixes, and sped-up/slowed-down edits can confuse identification — the system matches metadata and identity, not "does this sound like the same recording."
- A long video with several songs and no chapter list may need you to point at a timestamp yourself.
- Chapter-list parsing only handles the most common timestamp format in a description; unusual formatting can be missed.
- Genre and mood labels — wherever they come from — are approximations, not facts.
- Not every track has AcousticBrainz coverage; plenty of recommendations today are metadata- or listening-based only, and that's shown honestly rather than implied to be more than it is.
- Enhanced Audio Analysis only extracts tempo and key, needs a working microphone and browser support, and a noisy or too-quiet capture is discarded rather than guessed at.
- Recommendations are ranked suggestions from real, disclosed sources — not an objective, single "correct" answer.
10. If something's wrong
- Wrong song identified? Use the manual search box to search directly, or pick a different timestamp for long videos.
- Recommendation isn't a good fit? Use 👎, or exclude that artist entirely.
- Want fewer mainstream picks, or more? Use the "more obscure" / "more popular" controls.