Skip to main content

Turn a bittorrent magnet links into a .torrent file.

Project description


Pure python project to turn a magnet link into a .torrent file. The goal is to do it as fast as possible.

Getting Started


pip install magnet2torrent


Download an ubuntu iso torrent.

magnet2torrent fetch "magnet:?xt=urn:btih:e2467cbf021192c241367b892230dc1e05c0580e&dn=ubuntu-19.10-desktop-amd64.iso&"

Run it as an HTTP server.

magnet2torrent serve

Run it as an HTTP server with lots of features enabled.

magnet2torrent --use-dht --dht-state-file dht.state --torrent-cache-folder torcache serve --apikey secretkey

Use from python

import asyncio

from magnet2torrent import Magnet2Torrent, FailedToFetchException

async def fetch_that_torrent():
    m2t = Magnet2Torrent("magnet:?xt=urn:btih:e2467cbf021192c241367b892230dc1e05c0580e&dn=ubuntu-19.10-desktop-amd64.iso&")
        filename, torrent_data = await m2t.retrieve_torrent()
    except FailedToFetchException:

If you want to use DHT to retrieve, you will have to bootstrap and run it.

import asyncio
import os

from magnet2torrent import Magnet2Torrent, FailedToFetchException, settings

DHT_STATE_FILE = "/tmp/dht.state"

async def start_dht():
    if os.path.exists(DHT_STATE_FILE):
        dht_server = DHTServer.load_state(DHT_STATE_FILE)
        await dht_server.listen(settings.DHT_PORT)
        dht_server = DHTServer()
        await dht_server.listen(settings.DHT_PORT)
        await dht_server.bootstrap(settings.DHT_BOOTSTRAP_NODES)
    return dht_server

async def fetch_that_torrent(dht_server):
    m2t = Magnet2Torrent("magnet:?xt=urn:btih:e2467cbf021192c241367b892230dc1e05c0580e&dn=ubuntu-19.10-desktop-amd64.iso", dht_server=dht_server)
        filename, torrent_data = await m2t.retrieve_torrent()
    except FailedToFetchException:

dht_server =


This project is licensed under the MIT License - see the file for details

The DHT part is forked from bmueller/kademlia - its license can be found in the dht folder or in the original project.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

magnet2torrent-1.1.1.tar.gz (21.7 kB view hashes)

Uploaded source

Built Distribution

magnet2torrent-1.1.1-py3-none-any.whl (28.1 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page