TorrentSwitch – Tie multiple torrent managers into one simple tool


A program that links multiple torrent clients into a simple manager. This allows users to add multiple torrent managers which are running on different systems/devices. Adding multiple instances of the same torrent manager are possible, allowing the user to set multiple download folders, something many torrent managers do not support.

This project I started as I could not find any other program that would handle the task. I made the program for personal use . At the time the project seemed fairly straightforward and I expected to be finished in a couple of weeks. Oh boy was I wrong . The project took way more than I expected and this is because of multiple challenges that did popped up on the way. The main problem was missing documentation from both deluge and uTorrents APIs . Both APIs need authorization first, the program needs to save the cookie and use it for the actual JSON request. This took way too long to figure out as the documentations are nonexistent or there are multiple of them without any clear way to determine which one is the right one. Another problem was to fill the data grid with columns, rows and buttons on the go programmatically . Each new torrent client that is tied to the program creates a new column in the mainWindow and each torrent gets a button in that column that sends the torrent to the client. This might sound complex but it is only on paper. The last problem I stumbled upon was when I thought that the program was almost done and it was that I needed to disallow multiple instances of the program to run the same time. This wasn’t hard with a little mutex magic but the same time I needed all the new instances to deliver their content to the first instance before they quit. This got solved with inner process communication. The first instance becomes the server and each new instance becomes a client sending it’s content to the server which displays it and the client quits.

TorrentSwitch v1.1-alpha

TorrentSwitch v1.0-alpha

Currently working with 2 torrent managers: uTorrent and Deluge. labels not implemented, custom path not implemented.