How to Make Your Own Torrent

If you have a large file you want to distribute to several people – say, a documentary you shot, or your band’s discography – creating a torrent is the way to go. If you make your own torrent, it will speed up the download time for each consumer of your content, provided you and others continue to seed it (remind your friends to be good seeders).

Several different programs can be used to make your own torrent. For this tutorial, I’m going to use the free command-line utility mktorrent. Mktorrent is available for Linux and Mac OS X, as well as other POSIX-compliant systems. For you Microsoft fans out there, I found a Windows port of mktorrent on Will’s Blog (Note: you’ll need Cygwin to run it) and a graphical frontend at Binary Inspirations.

Besides a copy of mktorrent, you’ll also need:

  • A file to distribute
  • A torrent client, such as the cross-platform qBittorrent
  • Optionally, at least one place to upload your file as a Web seed

If you don’t expect many people to seed your torrent, it’s a good idea to set up a Web seed. This is a permanent location on the Web where your file is stored, and it will act as a seed just like a seed in the swarm (the community of hosts seeding and leeching a torrent). The Web seed(s) can be hosted on an HTTP or FTP server.

For my Web seed, I just used FTP to upload my file (an operating system ISO I created) to an HTTP directory on my own site:

torrent-web-seed

You need a direct link for a Web seed, so most popular file-sharing sites won’t do. Depending on what kind of file you have, you may be able to find public mirrors to host it on. For instance, the Oregon State University Open Source Lab provides free hosting for open source software projects. You can also host many different file types at The Internet Archive.

Before you create your torrent, you need to have a decent list of torrent trackers. Trackers do the work of searching for peers and seeds when someone opens a torrent in their torrent client. These are some free public trackers you can use:

  • udp://tracker.coppersurfer.tk:6969/announce
  • udp://tracker.ccc.de:80/announce
  • udp://tracker.publicbt.com:80
  • udp://tracker.istole.it:80
  • http://tracker.openbittorrent.com:80/announce
  • http://tracker.ipv6tracker.org:80/announce (ipv6 protocol only)

The more trackers you use, the better. It’s good to have fallback trackers in case one or more of them become unavailable. If you want to go the mega-hardcore route, you can even host your own tracker!

Now that you have a list of trackers, you’re ready to run mktorrent. Mktorrent is very easy to use. To see all of its options, type mktorrent -h.

torrent-mktorrent-help

This is a basic, stripped-down example of using mktorrent to make your own torrent with a single tracker from the file my-really-long-novel.pdf:

mktorrent -a tracker.ccc.de:80 -o my-really-long-novel.torrent my-really-long-novel.pdf

I recommend giving mktorrent a bit more information than that. This lengthier example creates a torrent from “SadOS_1.0_i686.iso” and sets multiple trackers with -a, a comment with -c, a name (which will show up in torrent clients) with -n, a higher verbosity level with -v, and a Web seed with -w:

mktorrent -a udp://tracker.coppersurfer.tk:6969/announce -a udp://tracker.ccc.de:80/announce -a udp://tracker.publicbt.com:80 -a udp://tracker.istole.it:80 -a http://tracker.openbittorrent.com:80/announce -a http://tracker.ipv6tracker.org:80/announce -c "This is SadOS 1.0, an Arch-based Linux distribution inspired by the comic at http://dondepresso.rujic.net." -n "SadOS 1.0 (i686)" -v -w http://rujic.net/sados/SadOS_1.0/SadOS_1.0_i686.iso SadOS_1.0_i686.iso

Mktorrent will repeat your options back to you and show you its progress as it hashes the pieces of your torrent:

torrent-mkrunning

Now you’ll have a *.torrent file in the directory in which you ran mktorrent. Open it up in your torrent client and set the data directory to be where your original file is. Congratulations! Your torrent has one seed.

You can now e-mail your torrent to your friends, upload it to any file-sharing site, or host it yourself. These options won’t get you much publicity, though. If you want the public to be able to search for and find your torrent, I suggest putting it on a torrent site – you know, one of those sites that you already download torrents from.

Note that not all “torrent sites” let you upload; many of them are just search engines for torrents hosted elsewhere. Here are some popular torrent sites where you can share your torrent:

There are also some niche torrent sites you might wish to use for certain types of content, such as Linux Tracker for Linux torrents.

To upload a torrent, you typically have to register a user account at your target site. Then you’ll just have to find the “Upload” section and get to it! This is what The Pirate Bay’s uploading interface looks like:

torrent-thepiratebay

Readers, what are your favorite ways to share large files?