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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

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.

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:

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:

  1. 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.
  2. 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.
  3. 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

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

9. Limitations, honestly

10. If something's wrong

← Back to LikeThisSong