====== Structure d'un fichier torrent ====== ===== Spécification ===== Une description est publiée ici: https://wiki.theory.org/index.php/BitTorrentSpecification#Metainfo_File_Structure En résumé : Le hash (ou infohash) du torrent est l'identifiant partagé entre tous les pairs qui récupèrent un même contenu. Il est calculé à partir du contenu même des fichiers partagés, et de quelques attributs dont le flag "privé" qui détermine si le client BitTorrent a le droit d'utiliser PeX (Peer exchange) et de partager ce contenu sur la DHT La liste des trackers, ainsi que les commentaires, n'interviennent pas dans le calcul du hash, ce qui fait qu'on peut changer ces données sans affecter le hash du torrent. Le flag «private» a été ajouté plus tard et n'a été intégré en tant que spécifications [[https://www.bittorrent.org/beps/bep_0027.html|BEP-027]] tardivement. Il vise à signaler que les échanges ne doivent pas être transmis à des pairs situés en dehors du tracker (typiquement, la DHT, puisqu'elle n'est affiliée à aucun tracker). En revanche, étant donné qu'il ne s'agit pas d'une donnée standardisée, le comportement des logiciels peut varier et n'est pas défini(([[wp>BitTorrent#Creating_and_publishing]])). ===== Structure d'un lien magnet ===== Bien que les liens magnet soient souvent affiliés à BitTorrent, d'autres P2P utilisent des variantes (Direct Connect, eMule...) ce qui a aboutit à un standard de facto. Voici deux exemples de lien magnet : **magnet:?xt=urn:btih:**aa0b15c3fc0297bd29e15e7b8ba405a4572483f3**&dn=**JoJo's.Bizarre.Adventure.Diamond.is.Unbreakable.S03.SUBFRENCH.WEBRiP.720p.x264-BSD**&tr=**udp:ipv4.tracker.harry.lu:80/announce**&tr=**udp:tracker.zer0day.to:1337 **magnet:?xt=urn:btih:**2e99d97f1768644a86a8e99bfd80c816490f959b**&dn=**Linux+Mint+Debian+%5B201101%5D+%5BISO%5D+%5B32-Bit%5D+%5Bgeno7744%5D+**&tr**=udp%3A%2F%2Ftracker.openbittorrent.com%3A80**&tr**=udp%3A%2F%2Ftracker.publicbt.com%3A80**&tr=**udp%3A%2F%2Ftracker.ccc.de%3A80 Note : Dans le second exemple, les caractères sont encodés afin d'être mieux intégrés dans du code HTML. Les mots-clés importants sont : * **magnet:?xt=urn:btih:**, on y appose le hash (xt = exact topic, btih = BitTorrent info hash) * **&dn=**, on donne une dénomination au contenu correspondant au hash (dn = data name) * **&tr=**, on inscrit l'URL du tracker (tr = tracker) Voir aussi : * [[def>checksum#exemples]] * [[wp>Magnet_URI_scheme]] * http://www.makeuseof.com/tag/bittorrent-magnets-work-technology-explained/ ===== Manipuler des fichiers .torrent ===== ==== Créer (graphiquement) ==== La plupart des clients P2P disposent d'une fonction permettant de créer des torrents à partir de fichiers dont vous disposez sur votre disque dur. ==== Créer (en ligne de commande) ==== Voir : [[.:creer-un-torrent-avec-mktorrent]] ==== Editer un fichier torrent ==== Des outils existent pour modifier ces données. * [[https://sites.google.com/site/ultimasites/bencode-editor|BEncode]], un logiciel sous Windows * [[http://torrenteditor.com|TorrentEditor.Com]], un site qui permet d'éditer les informations triviales d'un torrent * [[https://github.com/drizt/torrent-file-editor|Torrent File Editor]], logiciel écrit en C++ avec interface QT, pour windows/linux/mac Fonctionnalités de Torrent File Editor : * Create .torrent file from scratch * Edit .torrent file in user-friendly way * Edit .torrent file in JSON format * Add, remove and interchange files in .torrent file * Support for codings ===== Conversion Torrent <-> Magnet ===== ==== Torrent vers Magnet ==== * https://nutbread.github.io/t2m/ (web) * https://github.com/ungoldman/magnet-link (node.js) ==== Magnet vers Torrent ==== * https://magnet2torrent.com * depuis certains clients bittorrent après avoir chargé le magnet correspondant