I develop stuff and have opinions on things -
About me/Contact

Articles:

Moving away from private trackers

(and introducing torrent_convert.py)

DISCLAMER: I have only ever used a private tracker once (a long time ago), and I think I never will again, or at least in any foreseeable future.

While I do understand that keeping the door closed to free leeching can lead to a more lively ecosystem (ratio requirement → more seeds), and a quality requirement on the uploaded files improves the overall quality and reduces the chances of stumbling upon a fake, I do not believe this is healthy at all.

First of all, torrent clients contain algorithms that will priorize the fastest seed, with some variations depending on the rarity on some pieces (which is logical, and useful, because the shortest the download is, the better). However, with private trackers, this gets ugly, because it means people that want/can pay for a seedbox (and get at least 100 Mb/s up and down) will have the upper hand anytime. This means that people with an ADSL line and a poor 1 Mb/s upload will get to upload next to nothing, since they are far behind the others in terms of upload speed.

Moreover, it gets worse if you don’t follow mainstream content, because only a handful of people will download what you seed, and you will have to wait forever to get the required ratio. Some trackers will have periods or designated torrents for freeleech, but that can only be a temporary solution to the subsequent problem.

With the global bittorent swarm, it is not a problem at all, since you are not discriminated because of your ratio, and even if you can’t compete with seedboxes, you can still upload at your own speed, and there will be no consequence to your lack of ratio. In private trackers, well, it’s not, with your poor home connection you are a sub-member of the community, with no ratio at all, little more than a leecher, and your only chance to get ratio is to upload your own content (but even then, once someone with a seedbox downloads it, it’s over).

The other perverse effect of private trackers is that they tend to keep the content for themselves, a lot of content that originates from thoses websites stays on those websites, and seldom gets on a HTTP-accessible directory or a public tracker (or the DHT, for all I care). Sure, some (or most) private trackers encourage people to (re-)create public torrent in order to get the content out ; however, this does not happen often, because it is simply a pain to re-create something only in order to seed it.

To this effect, I have written a simple script that takes care of this task: torrent_convert.py

./torrent_convert.py example_private.torrent example_public.torrent

This is a script that takes a source (private) torrent as a first parameter, and a destination file to write the modified torrent in. It’s straightforward, and just works. It removes the pre-existing trackers, the private flag, and the potentially existing webseeds, and replaces the trackers with three public ones. Of course, you can change those ones, and even add webseeds if you want (TRACKERS and WEBSEEDS arrays inside the script).

This is Free software (BSD 2-Clause), so share, rewrite, modify it as you like. It needs python 2(not sure about sub-version, tested with 2.7.3) and libtorrent-rasterbar.

The hash identifying the torrent has changed, so the torrent clients should be able to see it as another torrent, but you can normally set the same source files for both (private & public) torrents.

PS: If your OS does not follow PEP-394, you will have to run python explicitly from the command-line (or edit the shebang).

If you have remarks or suggestions concerning this article, please by all means contact me.