demagnetize is a Rust program for converting one or more BitTorrent magnet
links into .torrent files
by downloading the torrent info from active peers.
At the moment, demagnetize only supports basic features of the BitTorrent
protocol. The following notable features are supported:
The following features are not currently supported but are planned, in no particular order:
x.pe parameters in magnet linksdemagnetize is a translation of a Python program by the same author; you can
find the Python version at https://github.com/jwodder/demagnetize.
In order to install demagnetize, you first need to have Rust and Cargo
installed. You can then build the
latest release of demagnetize and install it in ~/.cargo/bin by running:
cargo install demagnetize
demagnetize [<global options>] <subcommand> ...
The demagnetize command has two subcommands, get (for converting a single
magnet link) and batch (for converting a file of magnet links), both detailed
below.
-l <level>, --log-level <level> — Set the log level to the given value.
Possible values are "OFF", "ERROR", "WARN", "INFO", "DEBUG", and
"TRACE" (all case-insensitive). [default value: INFO]demagnetize getdemagnetize [<global options>] get [<options>] <magnet-link>
Convert a single magnet link specified on the command line to a .torrent
file. (Note that you will likely have to quote the link in order to prevent it
from being interpreted by the shell.) By default, the file is saved at
{name}.torrent, where {name} is replaced by the value of the name field
from the torrent info, but a different path can be set via the --outfile
option.
-o PATH, --outfile PATH — Save the .torrent file to the given path.
The path may contain a {name} placeholder, which will be replaced by the
(sanitized) name of the torrent, and/or a {hash} placeholder, which will be
replaced by the torrent's info hash in hexadecimal. Specifying - will
cause the torrent to be written to standard output. [default:
{name}.torrent]demagnetize batchdemagnetize [<global options>] batch [<options>] <file>
Read magnet links from <file>, one per line (ignoring empty lines and lines
that start with #), and convert each one to a .torrent file. By default,
each file is saved at {name}.torrent, where {name} is replaced by the value
of the name field from the torrent info, but a different path can be set via
the --outfile option.
-o PATH, --outfile PATH — Save the .torrent files to the given path.
The path may contain a {name} placeholder, which will be replaced by the
(sanitized) name of each torrent, and/or a {hash} placeholder, which will
be replaced by each torrent's info hash in hexadecimal. [default:
{name}.torrent]