Misplaced Pages

Magnet URI scheme

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

This is an old revision of this page, as edited by RomanSpa (talk | contribs) at 23:15, 29 August 2021. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Revision as of 23:15, 29 August 2021 by RomanSpa (talk | contribs)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff) Scheme that defines the format of magnet links
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Magnet URI scheme" – news · newspapers · books · scholar · JSTOR (January 2015) (Learn how and when to remove this message)
This article may require cleanup to meet Misplaced Pages's quality standards. The specific problem is: The lists of examples should be better organized; the layout is too haphazard. Please help improve this article if you can. (May 2012) (Learn how and when to remove this message)
This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (December 2014) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Rounded magnet icon used on The Pirate Bay

Magnet is a URI scheme that defines the format of magnet links, a de facto standard for identifying files (URN) by their content, via cryptographic hash value rather than by their location.

Although magnet links can be used in a number of contexts, they are particularly useful in peer-to-peer file sharing networks because they allow resources to be referred to without the need for a continuously available host, and can be generated by anyone who already has the file, without the need for a central authority to issue them. This makes them popular for use as "guaranteed" search terms within the file sharing community where anyone can distribute a magnet link to ensure that the resource retrieved by that link is the one intended, regardless of how it is retrieved.

History

The standard for Magnet URIs was developed by Bitzi in 2002, partly as a "vendor- and project-neutral generalization" of the ed2k: and freenet: URI schemes used by eDonkey2000 and Freenet, respectively, and attempts to follow official IETF URI standards as closely as possible. BitTorrent introduced the btmh: protocol in 2020 as part of its BitTorrent v2 changes.

Format

Magnet URIs consist of a series of one or more parameters, the order of which is not significant, formatted in the same way as query strings that ordinarily terminate HTTP URLs. The most common parameter is "xt" ("exact topic"), which is generally a URN formed from the content hash of a particular file, e.g.:

magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a

This refers to the hex-encoded SHA-1 hash (btih, "BitTorrent info-hash") of the torrent file info section in question. Note that, although a particular file is indicated, an availability search for it must still be carried out by the client application.

Parameters

The following parameters are supported:

Parameter Name Description
dn Display Name A filename to display to the user, for convenience.
xl eXact Length Size (in bytes)
xt eXact Topic URN containing file hash. This is the most crucial part of the magnet link, and is used to find and verify the specified file. The URN is specific to the protocol, so a file hash URN under btih (BitTorrent) would be completely different from the file hash URN for ed2k
xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
ws Web Seed The payload data served over HTTP(S)
as Acceptable Source Refers to a direct download from a web server. Regarded as only a fall-back source in case a client is unable to locate and/or download the linked-to file in its supported P2P network(s)
as=
xs eXact Source Either an HTTP (or HTTPS, FTP, FTPS, etc.) download source for the file pointed to by the Magnet link, the address of a P2P source for the file or the address of a hub (in the case of DC++), by which a client tries to connect directly, asking for the file and/or its sources. This field is commonly used by P2P clients to store the source, and may include the file hash.
xs=http://:/uri-res/N2R?
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
kt Keyword Topic Specifies a string of search keywords to search for in P2P networks, rather than a particular file
kt=martin+luther+king+mp3
mt Manifest Topic Link to the metafile that contains a list of magneto (MAGMA – MAGnet MAnifest); i.e. a link to a list of links
mt=http://example.org/all-my-favorites.rss
mt=urn:sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ
tr address TRacker Tracker URL; used to obtain resources for BitTorrent downloads without a need for DHT support. The value must be URL encoded.
tr=http%3A%2F%2Fexample.org%2Fannounce

The standard also allows for application-specific experimental parameters, which must begin with "x".

xt exact topic

The xt parameter specifies the URN for a given p2p protocol. Its purpose is to provide a search parameter for finding the metadata to the torrent. This effectively acts as a replacement to a .torrent file, which itself contains the torrent metadata, by instead searching the p2p network (using the URN) for that metadata. Each protocol handles a URN uniquely; for example, xt=urn:btih:FFC7E738EAA4CD4ECF51EC6FD669C6CDE2C281A8 uses the btih (BitTorrent v1 protocol), so a BitTorrent client can take the hash and lookup the torrent's metadata in the BitTorrent DHT. In the case of DHT the client searches through a set of pre-known nodes and requests the metadata for an infohash; those nodes will make the same request to other known nodes until eventually a swarm is found and returned.

xt also allows for a group setting. Multiple files can be included by adding a count number preceded by a dot (".") to each link parameter.

magnet:?xt.1=&xt.2=
Tiger Tree Hash (TTH)
These hashes are used on Direct Connect and G2 (Gnutella2), among others.
xt=urn:tree:tiger:
Secure Hash Algorithm 1 (SHA-1)
These hash sums are used on gnutella and G2 (Gnutella2).
xt=urn:sha1:
BitPrint
Such hash sums consist of an SHA-1 Hash, followed by a TTH Hash, delimited by a point; they are used on gnutella and G2 (Gnutella2).
xt=urn:bitprint:.
ED2K (eDonkey2000) hash
These hash sums are used on eDonkey2000.
xt=urn:ed2k:
Advanced Intelligent Corruption Handler (AICH)
Not formal URNs for Magnet links, such hash sums are used by eDonkey2000 to restore and control the integrity of downloading and already downloaded files.
xt=urn:aich:
Kazaa hash
Used on FastTrack, these hash sums are vulnerable to hash collision attacks.
xt=urn:kzhash:
BitTorrent info hash (BTIH)
These are hex-encoded SHA-1 hash sums of the "info" sections of BitTorrent metafiles as used by BitTorrent to identify downloadable files or sets of files. For backwards compatibility with existing links, clients should also support the Base32 encoded version of the hash.
xt=urn:btih:

Some clients require Base32 of info_hash (e.g., Vuze).

Message Digest 5 (MD5)
Supported by G2 (Gnutella2), such hashes are vulnerable to hash collision attacks.
xt=urn:md5:

Web links to the file

There are two types of download links that a Magnet link can include as a direct or backup source.

"as" ("acceptable source")
Most clients treat "as" as equal to the "xs" token when it comes to priority, and ignore the timeout before contacting "as" sources denoted by the specs.
Content-Addressable Web URL
This type of RFC 2168-based link is used by gnutella as well as G2 applications.
xs=http://:/uri-res/N2R?
xs=http://192.0.2.27:6346/uri-res/N2R?urn:sha1:FINYVGHENTHSMNDSQQYDNLPONVBZTICF
Link to a DirectConnect hub to find sources for a file
This type of link connects a DirectConnect client immediately to the hub in question.
xs=dchub://:
Reference to a web-based source cache for a file on Gnutella2
In this case, the included link points, not to a client IP or direct source, but to a source cache which stores the IPs of other clients contacting it to download the same file. Once a client connects to the cache, it is served IPs for alternate sources, while its own IP is stored within the cache and forwarded to the next one connecting to the cache. This system operates similar to a BitTorrent tracker.
xs=http://cache.freebase.be/
Reference to an eD2k source
xs=ed2kftp://:///

Supplement format (x.)

For experimental and self-complementing informal options, the prefix x. followed by a chosen suffix letter can be used. These names are guaranteed to never be standardized.

x.=

Clients

Client dn xl xt tr xs as kt mt ws
AMule Yes Yes urn:ed2k: No Un­known Un­known Un­known Un­known Un­known
ApexDC++ Yes Yes urn:bitprint:
urn:tree:tiger:
No dchub: dchub: No No Un­known
BitComet Yes Yes urn:btih: Yes Yes1.76 No No No Yes1.74
Bitflu Yes No urn:btih: Yes No No No No Un­known
Deluge Yes No urn:btih: Yes No No No No Un­known
EiskaltDC++ Yes Yes urn:tree:tiger:
urn:bitprint:
urn:btih:
urn:btmh:
No dchub:
adc:
adcs:
dchub: Yes No Un­known
FlylinkDC++ Yes Yes urn:tree:tiger:
urn:bitprint:
urn:btih:
No dchub:
adc:
adcs:
dchub: Yes No Un­known
gtk-gnutella Yes Yes urn:sha1: No http:
push:
Yes Yes No Un­known
KTorrent Yes No urn:btih: Yes No No No No Un­known
LimeWire Yes Yes urn:sha1: No http:
urn:guid:
Un­known No No Un­known
MonoTorrent Yes Yes urn:btih: Yes No Yes No No Un­known
μTorrent Yes No urn:btih: Yes No No No No Un­known
qBittorrent Yes No urn:btih: Yes Un­known Un­known No No Un­known
Shareaza Yes Yes urn:bitprint:
urn:btih:
urn:ed2k:
urn:md5:
urn:sha1:
urn:tree:tiger:
Yes http:
ftp:
http:
ftp:
(Same priority as xs)
Yes No Un­known
Tixati Yes Yes urn:btih: Yes Un­known Un­known Un­known Un­known Un­known
Transmission Yes No urn:btih: Yes No No No No Un­known
Vuze Yes Yes urn:btih:
urn:sha1:
Yes Yes5.7.5.0 Yes5.7.5.0 No No Yes

See also

Explanatory notes

  1. ^ dchub://:
  2. ^ Passes link to external software
  3. ^ adc://:
  4. ^ adcs://:
  5. Since v2.5.1.0

References

  1. "BitTorrent v2". BitTorrent. Retrieved 7 September 2020.
  2. ^ BEP-9: Extension for Peers to Send Metadata Files
  3. Chapweske, Justin (November 29, 2001). "HTTP Extensions for a Content-Addressable Web". www-talk. W3C.
  4. "v1.74 Core Improve: support ws parameter in Magnet URI, to add web seed". bitcomet. bitcomet.
  5. "magnet-test.c in trunk/libtransmission; Revision 9531". Transmission.
  6. "magnet.c in trunk/libtransmission; Revision 9979". Transmission.

External links

Uniform Resource Identifier (URI) schemes
Official
Unofficial
Protocol list
Peer-to-peer file sharing
Networks,
protocols
Centralized
Decentralized
Historic
Comparisons
of clients
Hyperlinks
Uses
Concepts
Privacy
Internal
technologies
Categories: