BitTorrent is often heralded as the greatest thing since sliced bread for large content distribution. According to this article, BitTorrent usage accounts for about 53% of all peer-to-peer traffic. But is it any good for small filmmakers?

BitTorrent is the brain child of Bram Cohen. He originally devised BitTorrent as a clever way to distribute large files, like 700MB .iso files of a Linux distribution. The principle idea of BitTorrent is that every downloader is an uploader too. The download is chopped into chunks, and every downloader keeps track of whatever chunks he has. Instead of downloading every chunk from one central server, the downloaders will download chunks from each other. As long as the whole file to download is somewhere in this ad-hoc peer-to-peer network, the download stays alive.

You need to do three things to make a movie available via BitTorrent:

  1. You need to find a tracker. The tracker keeps track of all downloaders, and gives new downloaders a list of peers. This tracker will be contacted by every downloader periodically, so it needs to be on a public machine with enough processing power and bandwidth. You don’t need to run your own tracker, you can use public service trackers instead. Most public trackers require you to upload the .torrent file but it’s not strictly necessary.
  2. You need to create a .torrent file from your original movie. This small file contains checksums for every chunk of the file, and the address of the tracker. The torrent file is on the one your visitors will initially download, so it’s the one that needs to be on your website.
  3. You start seeding the torrent, presumably from your own computer. Create a directory with the original movie and the .torrent file you created in step two. You point your bittorrent client to the .torrent file and start “downloading” it. This may sound contra-intuïtive, but what actually happens is that your client starts uploading chunks from the original movie to every other downloader that asks for it. This is how your movie enters the network of downloaders.

Your visitor downloads the .torrent file, fires up his BitTorrent client and starts downloading your movie. The more people downloading your movie, the faster it goes, and aside from multiple downloads of the .small torrent file, your webserver won’t see any load at all.

Sounds like a great way to distribute movies, isn’t it? Well, it is, and it isn’t. People quickly found out that BitTorrent is ideal for sharing TV shows, Hollywood movies, anime, porn and other big files, but you won’t see many small independent movie makers using BitTorrent. Most have their own website and use traditional means of spreading their movies, mostly http downloads.

The problem is that while BitTorrent as a protocol is perfectly suited towards small movie distribution, the official (and other) implementations are not. Creating and distributing a torrent file is not a problem, but running a tracker is and seeding the torrent is.

The tracker poses a problem because you can not run one a shared webhost and because it is open to anyone. Anyone can use a tracker to spread whatever material they have, and because it’s not easy to set up a tracker, they will have to. This means that a) public trackers are easily overloaded and b) your movie is thrown into heap of crap ranging from pirated Hollywood movies to porn and other shady material. Hollywood doesn’t really like seeing its movies all over internet, so they let the MPAA shut down quite a few trackers (although technically they do not distribute a single byte of the infringing material). So, trackers are not exactly reliable, and you won’t be setting one up soon because you can not control what passes through it. (note).

Seeding is another problem. A torrent without a single seed is dead. You yourself must keep a connection to the tracker for as long as you want your movie to be available. Obviously this is not a problem when you just want to spread the latest hit movie. That torrent will stay alive long enough by itself, and when it’s dead another hit movie will be there. But if you want to keep your movies available forever, you will need to find a way to keep seeding the torrent forever.

What is needed for BitTorrent to be usefull for me (and presumably other content distributors) is a way to install the server software on a shared server, upload your movie and .torrent file, and be done with it. The software should seed the torrent automatically and the tracker should be restricted to the torrents I feed it with. And this should have been done from the beginning.

Open semi-anonymous trackers might have been a wonderfull technical idea, but it opened the floodgates for all kinds of piracy and gave BitTorrent an unnecessary bad name. Compare it to SMTP: open mail relays are still causing us problems.

I just hope somebody finds the incentive to create a neat BitTorrent package that does what I described above, or starts a similar simple BitTorrent hosting service. Right now the best way to use BitTorrent for distributing movies might be a dedicated server running a restricted tracker and a seeder.

In all fairness, the current official BitTorrent distribution allows you to restrict the tracker to local torrents only. Most PHP-based trackers require you to upload the torrent file first and can easily be restricted to certain torrents. But the damage is done: my webhost forbids anything remote looking like a tracker (even restricted ones) because the risk of copyright infringment is too big for them.