{"id":13482090,"url":"https://github.com/webtorrent/magnet-uri","last_synced_at":"2025-03-27T12:32:06.067Z","repository":{"id":11455356,"uuid":"13917211","full_name":"webtorrent/magnet-uri","owner":"webtorrent","description":"Parse a magnet URI and return an object of keys/values","archived":false,"fork":false,"pushed_at":"2024-06-29T21:22:16.000Z","size":166,"stargazers_count":221,"open_issues_count":4,"forks_count":45,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-08-12T21:27:10.885Z","etag":null,"topics":["bittorrent","browser","browserify","javascript","magnet-link","magnet-uri","nodejs","parse","torrent","webtorrent"],"latest_commit_sha":null,"homepage":"https://webtorrent.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webtorrent.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["webtorrent","feross"]}},"created_at":"2013-10-28T05:04:33.000Z","updated_at":"2024-08-12T21:27:16.621Z","dependencies_parsed_at":"2024-01-16T02:45:19.206Z","dependency_job_id":"a3d5ec32-3f0d-4348-acc7-bfa19703ec7a","html_url":"https://github.com/webtorrent/magnet-uri","commit_stats":{"total_commits":217,"total_committers":22,"mean_commits":9.863636363636363,"dds":0.3502304147465438,"last_synced_commit":"7d6e66ebadb8ff3d566d291cbb6eee592c5963d4"},"previous_names":["feross/magnet-uri"],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtorrent%2Fmagnet-uri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtorrent%2Fmagnet-uri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtorrent%2Fmagnet-uri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtorrent%2Fmagnet-uri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webtorrent","download_url":"https://codeload.github.com/webtorrent/magnet-uri/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245845191,"owners_count":20681858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bittorrent","browser","browserify","javascript","magnet-link","magnet-uri","nodejs","parse","torrent","webtorrent"],"created_at":"2024-07-31T17:00:58.888Z","updated_at":"2025-03-27T12:32:05.759Z","avatar_url":"https://github.com/webtorrent.png","language":"JavaScript","funding_links":["https://github.com/sponsors/webtorrent","https://github.com/sponsors/feross"],"categories":["Modules","Libraries","JavaScript"],"sub_categories":["Javascript"],"readme":"# magnet-uri [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]\n\n[ci-image]: https://img.shields.io/github/workflow/status/webtorrent/magnet-uri/ci/master\n[ci-url]: https://github.com/webtorrent/magnet-uri/actions\n[npm-image]: https://img.shields.io/npm/v/magnet-uri.svg\n[npm-url]: https://npmjs.org/package/magnet-uri\n[downloads-image]: https://img.shields.io/npm/dm/magnet-uri.svg\n[downloads-url]: https://npmjs.org/package/magnet-uri\n[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg\n[standard-url]: https://standardjs.com\n\n### Parse a magnet URI and return an object of keys/values.\n\nAlso works in the browser with [browserify](http://browserify.org/)! This module is used by [WebTorrent](http://webtorrent.io).\n\n## install\n\n```\nnpm install magnet-uri\n```\n\n## usage\n\n### decode\n\nParse a magnet URI and return an object of keys/values.\n\n```js\nimport magnet from 'magnet-uri'\n\n// \"Leaves of Grass\" by Walt Whitman\nconst uri = 'magnet:?xt=urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36\u0026dn=Leaves+of+Grass+by+Walt+Whitman.epub\u0026tr=udp%3A%2F%2Ftracker.example4.com%3A80\u0026tr=udp%3A%2F%2Ftracker.example5.com%3A80\u0026tr=udp%3A%2F%2Ftracker.example3.com%3A6969\u0026tr=udp%3A%2F%2Ftracker.example2.com%3A80\u0026tr=udp%3A%2F%2Ftracker.example1.com%3A1337'\n\nconst parsed = magnet.decode(uri)\nconsole.log(parsed.dn) // \"Leaves of Grass by Walt Whitman.epub\"\nconsole.log(parsed.infoHash) // \"d2474e86c95b19b8bcfdb92bc12c9d44667cfa36\"\n\n```\n\nThe `parsed` magnet link object looks like this:\n\n```js\n  {\n    \"xt\": \"urn:btih:d2474e86c95b19b8bcfdb92bc12c9d44667cfa36\",\n    \"dn\": \"Leaves of Grass by Walt Whitman.epub\",\n    \"tr\": [\n      \"udp://tracker.example1.com:1337\",\n      \"udp://tracker.example2.com:80\",\n      \"udp://tracker.example3.com:6969\",\n      \"udp://tracker.example4.com:80\",\n      \"udp://tracker.example5.com:80\"\n    ],\n\n    // added for convenience:\n    \"infoHash\": \"d2474e86c95b19b8bcfdb92bc12c9d44667cfa36\",\n    \"infoHashBuffer\": ...,\n    \"name\": \"Leaves of Grass by Walt Whitman.epub\",\n    \"announce\": [\n      \"udp://tracker.example1.com:1337\",\n      \"udp://tracker.example2.com:80\",\n      \"udp://tracker.example3.com:6969\",\n      \"udp://tracker.example4.com:80\",\n      \"udp://tracker.example5.com:80\"\n    ]\n  }\n```\n\n### encode\n\nConvert an object of key/values into a magnet URI string.\n\n```js\nimport magnet from 'magnet-uri'\n\nconst uri = magnet.encode({\n  xt: [\n    'urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1',\n    'urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY',\n    'urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q'\n  ],\n  xl: '10826029',\n  dn: 'mediawiki-1.15.1.tar.gz',\n  tr: [\n    'udp://tracker.openbittorrent.com:80/announce'\n  ],\n  as: 'http://download.wikimedia.org/mediawiki/1.15/mediawiki-1.15.1.tar.gz',\n  xs: [\n    'http://cache.example.org/XRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5',\n    'dchub://example.org'\n  ]\n})\n\nconsole.log(uri) // the magnet uri\n```\n\nThe returned magnet uri will be:\n\n```\nmagnet:?xt=urn:ed2k:354B15E68FB8F36D7CD88FF94116CDC1\u0026xt=urn:tree:tiger:7N5OAMRNGMSSEUE3ORHOKWN4WWIQ5X4EBOOTLJY\u0026xt=urn:btih:QHQXPYWMACKDWKP47RRVIV7VOURXFE5Q\u0026xl=10826029\u0026dn=mediawiki-1.15.1.tar.gz\u0026tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce\u0026as=http%3A%2F%2Fdownload.wikimedia.org%2Fmediawiki%2F1.15%2Fmediawiki-1.15.1.tar.gz\u0026xs=http%3A%2F%2Fcache.example.org%2FXRX2PEFXOOEJFRVUCX6HMZMKS5TWG4K5\u0026xs=dchub%3A%2F%2Fexample.org\n```\n\nYou can also use convenience key names like `name` (`dn`), `infoHash` (`xt`),\n`infoHashBuffer` (`xt`), `publicKey` (`xs`), `publicKeyBuffer` (`xs`), `announce` (`tr`), and `keywords` (`kt`).\n\n## license\n\nMIT. Copyright (c) [Feross Aboukhadijeh](https://feross.org) and [WebTorrent, LLC](https://webtorrent.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebtorrent%2Fmagnet-uri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebtorrent%2Fmagnet-uri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebtorrent%2Fmagnet-uri/lists"}