Bookmarklet to add Torrents to Transmission from your iPhone

I have long been looking for a way to easily add a Torrent file to my Bittorrent client when out and about. Obviously the iPhone is a great solution for this but due to restrictions in Apple’s walled-garden they tend not to approve Bittorrent apps because of piracy concerns. While I concede that their concerns are not entirely unfounded, there are plenty of perfectly legal uses for Bittorrent. Android users have a great app called Transdroid that does exactly what I’m talking about. As a Mac user, I have been long term fan of the now excellent Transmission client. While Transmission has a nice iPhone friendly web interface it is severely lacking when it comes to adding Torrents from your phone. This is what this post addresses.Over the last few months I have been helping out on a project that offers an elegant solution to the problem. The user simply clicks a bookmarklet on the page containing the torrent they want to download, and then clicks the link to the Torrent. The torrent is then downloaded on their remote computer. This way you can be away from your home, add a Torrent remotely, and have the finished download waiting for you when you get back.

Here’s how to get it up and running:


Follow these steps to setup remotely controlling Transmission from your phone. Once done you can access the iPhone Web GUI from your phone to control and monitor your downloads, as well as being able to add new downloads from your iPhone.

1. Setup Transmission for Remote Access
In OSX: Open Transmission and in the Menu bar go to ‘Transmission’ > ‘Preferences’ > click ‘Remote’ tab > check ‘Enable Remote Access. Enter a username and password if you want. Take note of the PORT number (you can change it if you wish). You will need this later.

2. Assign your Transmission server a static local IP address and Setup Port Forwarding on your Router
This will enable web traffic to be forwarded to your local server so you can access Transmission from the Internet. You need to configure your router to forward the PORT above to your local Transmission server. You will need to make sure your server is assigned a static local IP address by your router. You can Google instructions on how to do this. For OSX users, I’ve done it for you. Go here.

Your public IP address can be found here:

You can also optionally setup a dynamic DNS service on your local server so you can access the machine via a URL rather than an IP address. This is useful if your ISP dynamically assigns you a new IP address each time you connect. One option is:

The Web Interface for Transmission should now be accessible. To test it, turn off the WiFi on your phone (so you are using 3G/EDGE), and access this address from your phones browser:


(Replace yourserver.ip with the public IP address OR server address set in above and port with the PORT number set in Step 1 Don’t forget the colon separating them.)

All okay? then continue…

Now you need the rather brilliant code found here. Go to the site and download the latest version of the files.

3. Install the Bookmarklet server files in the ‘web’ folder of Transmission
Copy the HTML files and images to the your Transmission client’s ‘web’ folder according to the instructions provided with the bookmarklet.

If using the native Mac OS X this should be located under “~/Applications/”. You can access these folders by right-clicking on the icon and choosing ‘Show Package Contents’.

4. Setup the Bookmarklet on your Phone

Go to the following page and follow the instructions. This page can be viewed on your Desktop Browser, iPad or iPhone.


Replace yourserver.ip with the public IP address OR server address that you set in Step 2.
Replace port with the PORT number set in step 1. Note the colon separating them.

The page has clear instructions on how to use the bookmarklet. You should now be able to remotely add Torrents from your iPhone. :)

Support for the bookmarklet can be found in the Transmisson forums here. Feel free to post any questions in the comments. I will answer what I can.