magnet-uri

Parse a magnet URI and return an object of keys/values.
Also works in the browser with browserify! This module is used by WebTorrent.
install
npm install magnet-uri
usage
decode
Parse a magnet URI and return an object of keys/values.
const magnet = // "Leaves of Grass" by Walt Whitmanconst uri = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36&dn=Leaves+of+Grass+by+Walt+Whitman.epub&tr=udp%3A%2F%2Ftracker.example4.com%3A80&tr=udp%3A%2F%2Ftracker.example5.com%3A80&tr=udp%3A%2F%2Ftracker.example3.com%3A6969&tr=udp%3A%2F%2Ftracker.example2.com%3A80&tr=udp%3A%2F%2Ftracker.example1.com%3A1337' const parsed = magnetconsole // "Leaves of Grass by Walt Whitman.epub"console // "d2474e86c95b19b8bcfdb92bc12c9d44667cfa36" The parsed magnet link object looks like this:
"xt": "urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36" "dn": "Leaves of Grass by Walt Whitman.epub" "tr": "udp://tracker.example1.com:1337" "udp://tracker.example2.com:80" "udp://tracker.example3.com:6969" "udp://tracker.example4.com:80" "udp://tracker.example5.com:80" // added for convenience: "infoHash": "d2474e86c95b19b8bcfdb92bc12c9d44667cfa36" "infoHashBuffer": ... "name": "Leaves of Grass by Walt Whitman.epub" "announce": "udp://tracker.example1.com:1337" "udp://tracker.example2.com:80" "udp://tracker.example3.com:6969" "udp://tracker.example4.com:80" "udp://tracker.example5.com:80" encode
Convert an object of key/values into a magnet URI string.
const magnet = const uri = magnet console // the magnet uriThe returned magnet uri will be:
magnet:?xt=urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1&xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY&xt=urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q&xl=10826029&dn=mediawiki-1.15.1.tar.gz&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&as=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz&xs=http%3A%2F%2Fcache.example.org%2FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5&xs=dchub%3A%2F%2Fexample.org
You can also use convenience key names like name (dn), infoHash (xt),
infoHashBuffer (xt), announce (tr), and keywords (kt).
license
MIT. Copyright (c) Feross Aboukhadijeh and WebTorrent, LLC.