piapia123
en

Magnet link validator

Web

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

Paste a magnet link to find out whether it works — and if not, which part is broken. If it does work, you get to see exactly which torrent it points at. The test here is whether it works, not whether it follows the spec. BEP 9 and BEP 52 impose plenty of rules on magnet URIs, but a large share of links that download just fine break them: `&` left over from copying out of a web page, a display name whose non-ASCII characters were never percent-encoded, a stray space after a tracker. Calling all of those invalid puts a red cross next to a link that plainly works, which helps nobody. So the line is drawn at what actually fails in a client; everything else is reported as something to note. What genuinely fails: no `xt` at all (the client has nothing to fetch), a hash of the wrong length (usually truncated by a copy), a hash with characters outside its notation, and an uppercase parameter name — parameter names are case-sensitive, so a client ignores `XT=` completely, and that one is the easiest to mistake for "the link looks fine, why is nothing happening". Beyond the verdict, both notations of `btih` are printed. The same 20 bytes can be written as 40 hex characters or as 32 Base32 characters, and plenty of sites accept only one of the two. Finally you get a normalized link: `&` restored, zero-width characters removed, the hash written consistently, the display name percent-encoded properly. It sits right next to the input as pasted, which is never modified.

Features

  • Reports valid or invalid, and says which check failed
  • Converts between hex and Base32 info hashes, each with its own copy button
  • Handles v1 (btih / SHA-1), v2 (btmh / SHA-256) and hybrid torrents
  • Breaks out dn, xl, tr, ws, as, xs, kt, so, x.pe and any unknown parameters
  • Spots the &, zero-width characters and wrapping quotes that come from copy and paste
  • Produces a normalized link while keeping the original untouched
  • Entirely local: no network calls, no DHT lookups, no seed checking

How to use

  1. Paste a magnet link
  2. Read the verdict on the first line
  3. Use the identity section to grab whichever hash notation you need
  4. Copy the normalized link at the end when you want a clean one

FAQ

Can it tell me whether anyone is still seeding this torrent?
No, and that is deliberate. It would mean querying the DHT, and this site has no server involved — everything runs in your browser. Conversely, a torrent with no seeders right now does not mean the link is broken: it is perfectly valid, just not downloadable at the moment. Those two things get confused constantly.
Why is an uppercase XT= invalid when other quirks are only noted?
Because that one really does break the link. Scheme names and most values are case-insensitive, but magnet parameter names are not: a client looks for a lowercase `xt`, so `XT` counts as absent. The symptom is a link that looks perfectly normal and does nothing when pasted. A display name that was never percent-encoded is a different matter — nearly every client tolerates that.
Does the normalized link change my data?
It touches values in two cases only: paste noise (`&`, zero-width characters, wrapping quotes), and the display name, which has to be percent-encoded again because a bare `&` or `#` breaks the query structure — leave it alone and the link resolves to something else in a client. Trackers and every other parameter are kept exactly as written, unknown parameters included. The original also occupies its own line, character for character.
Base32 or hex — which do clients accept?
Both; BEP 9 defines both notations. But hex is what virtually every tool and index produces, so it travels better, while Base32 is the historical form and a few older clients and aggregator sites accept only hex. When you have Base32, the equivalent hex line above is the safer one to hand out.

Related tools