{"id":"cca41f3c6b01800f3878b415a1ccd0499e3b65443d18a82523dd1caabc6756dd","pubkey":"2b39b4ffe62933df970e19366c22c1e092f953f83fcfed754e0f04d5a3b459f9","created_at":1725383491,"kind":30817,"tags":[["d","nip-35"],["title","NIP-35: Torrents"],["summary","Kind 2003, a torrent index carrying the info hash, the file list and the trackers needed to rebuild a magnet link."],["s","draft"],["t","nostr"],["t","nip"],["k","2003","Torrent"],["k","2004","Torrent Comment"],["alt","A specification: NIP-35: Torrents"],["client","openspecs-import"],["published_at","1668886127"],["proxy","https://github.com/nostr-protocol/nips/blob/656cecc7c0a815b6a2b218d3b5d6f078b3f4dbab/35.md","web"],["x","bb44a36a47c82d83b345f29742e49d9822bb267e3a2fac214b6ccc62327fdc11"]],"content":"NIP-35\n======\n\nTorrents\n--------\n\n`draft` `optional`\n\nThis NIP defined a new `kind 2003` which is a Torrent. \n\n`kind 2003` is a simple torrent index where there is enough information to search for content and construct the magnet link. No torrent files exist on nostr.\n\n## Tags\n- `x`: V1 BitTorrent Info Hash, as seen in the [magnet link](https://www.bittorrent.org/beps/bep_0053.html) `magnet:?xt=urn:btih:HASH`\n- `file`: A file entry inside the torrent, including the full path ie. `info/example.txt`\n- `tracker`: (Optional) A tracker to use for this torrent\n\nIn order to make torrents searchable by general category, you SHOULD include a few tags like `movie`, `tv`, `HD`, `UHD` etc.\n\n## Tag prefixes\n\nTag prefixes are used to label the content with references, ie. `[\"i\", \"imdb:1234\"]`\n\n- `tcat`: A comma separated text category path, ie. `[\"i\", \"tcat:video,movie,4k\"]`, this should also match the `newznab` category in a best effort approach.\n- `newznab`: The category ID from [newznab](https://github.com/Prowlarr/Prowlarr/blob/develop/src/NzbDrone.Core/Indexers/NewznabStandardCategory.cs)\n- `tmdb`: [The movie database](https://www.themoviedb.org/) id.\n- `ttvdb`: [TV database](https://thetvdb.com/) id.\n- `imdb`: [IMDB](https://www.imdb.com/) id.\n- `mal`: [MyAnimeList](https://myanimelist.net/) id.\n- `anilist`: [AniList](https://anilist.co/) id.\n\nA second level prefix should be included where the database supports multiple media types.\n- `tmdb:movie:693134` maps to `themoviedb.org/movie/693134`\n- `ttvdb:movie:290272` maps to `thetvdb.com/movies/dune-part-two`\n- `mal:anime:9253` maps to `myanimelist.net/anime/9253`\n- `mal:manga:17517` maps to `myanimelist.net/manga/17517`\n\nIn some cases the url mapping isnt direct, mapping the url in general is out of scope for this NIP, the section above is only a guide so that implementers have enough information to succsesfully map the url if they wish.\n\n```json\n{\n  \"kind\": 2003,\n  \"content\": \"<long-description-pre-formatted>\",\n  \"tags\": [\n    [\"title\", \"<torrent-title>\"],\n    [\"x\", \"<bittorrent-info-hash>\"],\n    [\"file\", \"<file-name>\", \"<file-size-in-bytes>\"],\n    [\"file\", \"<file-name>\", \"<file-size-in-bytes>\"],\n    [\"tracker\", \"udp://mytacker.com:1337\"],\n    [\"tracker\", \"http://1337-tracker.net/announce\"],\n    [\"i\", \"tcat:video,movie,4k\"],\n    [\"i\", \"newznab:2045\"],\n    [\"i\", \"imdb:tt15239678\"],\n    [\"i\", \"tmdb:movie:693134\"],\n    [\"i\", \"ttvdb:movie:290272\"],\n    [\"t\", \"movie\"],\n    [\"t\", \"4k\"],\n  ]\n}\n```\n\n## Torrent Comments\n\nA torrent comment is a `kind 2004` event which is used to reply to a torrent event.\n\nThis event works exactly like a `kind 1` and should follow `NIP-10` for tagging.\n\n## Implementations\n1. [dtan.xyz](https://git.v0l.io/Kieran/dtan)\n2. [nostrudel.ninja](https://github.com/hzrd149/nostrudel/tree/next/src/views/torrents)","sig":"0a5647eaf0f0f1d56e10841f58394e92ab7a11a17bce41ff59a3ecf857cc80a0af1b7e837267d50b7d5b667e45fbfb27c1f7c87e2bec7dfe05cbe84e2c27db1c"}