Python 3 module for creating and parsing torrent files and magnet URIs


Keywords
bittorrent, torrent, magnet, magnet-link, magnet-uri, python3, torrent-files
License
GPL-3.0+
Install
pip install torf==3.1.3

Documentation

torf

torf provides a Torrent and a Magnet class.

torf-cli is a command line tool that makes use of torf.

This project started as a fork of dottorrent but turned into a rewrite.

Features

  • Create a Torrent instance from a path to the torrent's content or by reading an existing .torrent file
  • High-level access to standard metainfo fields via properties
  • Low-level access to arbitrary metainfo fields via metainfo property
  • Optional metainfo validation with helpful error messages
  • Generate a BTIH magnet URI from a .torrent file (the reverse is also possible but the resulting torrent is incomplete due to the lack of information in magnet URIs)
  • Check if a file system path contains everything an existing .torrent file needs
  • Use multiple CPU cores to compute piece hashes
  • Randomize the info hash to help with cross-seeding

Example

from torf import Torrent
t = Torrent(path='path/to/content',
            trackers=['https://tracker1.example.org:1234/announce',
                      'https://tracker2.example.org:5678/announce'],
            comment='This is a comment')
t.private = True
t.generate()
t.write('my.torrent')

Documentation

Everything should be explained in the docstrings. Read it with pydoc3 torf.Torrent or pydoc3 torf.Magnet.

Documentation is also available at torf.readthedocs.io or torf.readthedocs.io/en/latest for the development version.

Installation

torf is available on PyPI.

The latest development version is in the master branch on GitHub.

Contributing

I consider this project feature complete, but feel free to request new features or improvements. Bug reports are always welcome, of course.

License

GPLv3+