1. Home
  2. Kodi

Install Transmission on the Raspberry Pi For An “Always-on” Torrent Client

Transmission is a Torrent client software. It makes use of a web interface, making it particularly well-suited for headless setups to handle the downloading of torrents in the background. There are many articles on the web about Transmission on the Raspberry Pi. Unfortunately, many of them are either way too complicated or simply wrong. However, it’s actually relatively simple to install and configure Transmission when you follow our detailed instruction.

Transmission and Raspberry Pi

Today, after discussing the advantages of using a VPN when torrenting, we’ll introduce you to torrents and to Transmission. We’ll then discuss what makes the Raspberry Pi such a good platform for running Transmission. Jumping to the core of the matter, we’ll give you detailed instructions on how to install, configure and use Transmission on your Raspberry Pi. We’ve tried to keep our guide simple. We’ve eliminated the fluff and have kept only what is really required. This helps make the process as simple as it can.

For Better Privacy When Downloading Torrents, Use A VPN

There’s nothing wrong with downloading torrents per se. In fact, lots of open-source software are distributed that way. However, torrents are also used to distribute copyrighted material. For that reason, some Internet Service Providers might be led to think someone is violating their terms and conditions just because they use torrents. And when they do, they can react by throttling down the speed, sending infringement notices or even interrupting the service. To hide your online activity from the scrutiny of your ISP, use a VPN.

A VPN works its magic by encrypting your data using strong algorithms that make it almost impossible to crack. Your IPS–or anyone, for that matter–won’t see where you’re going or what you’re doing online. As a bonus, a VPN allows bypassing geographic restrictions by letting you masquerade your location and appear like you’re located somewhere else.

With so many providers available, choosing a VPN can be a daunting task. Here are a few important factors to consider. A fast connection speed will reduce buffering, a no-logging policy will further protect your privacy, no usage restrictions will let you access any content at full speed and software for multiple platforms will ensure the VPN works on your devices.

The Best VPN For Torrenting: IPVanish

Best VPN for torrenting - IPVanish

We’ve tested several VPN providers against the criteria above and the provider we recommend for torrenting is IPVanish. With servers worldwide, no speed cap or throttling, unlimited bandwidth, unrestricted traffic, and a strict no-logging policy, IPVanish delivers impressive performance and value. Although it doesn’t have a Linux client, IPVanish uses the industry-standard OpenVPN protocol and will, therefore, work fine on the Raspberry Pi by simply installing and configuring the OpenVPN software.

IPVanish offers a 7-day money back guarantee which means you have a week to test it risk-free. Please note that Addictive Tips readers can save a massive 60% here on the IPVanish annual plan, taking the monthly price down to only $4.87/mo.

A Quick Introduction To Torrents

Torrent, or more precisely BitTorrent, is a communication protocol used to share files between users. Contrary to other methods of obtaining files off the Internet–such as downloading from websites or FTP, it does not rely on servers to hold its content. It is rather distributed among all users. BitTorrent was created in 2002 primarily as a way of distributing the open-source Linux operating system. Today, BitTorrent has become the most-used method for downloading files. More than half of all the file transfers on the Internet are done through torrents.

BitTorrent network

BitTorrent is a peer-to-peer protocol where every user not only gets but also shares content. BitTorrent Trackers–a special kind of server–keep track of all the file segments that are available from each of the connected peers. When you start your torrent software, it connects automatically to nearby peers and trackers and automatically shares all local file segments information, making them available to other users. This is central to torrent’s operation. Files are hosted and shared on each user’s computer.

To find and download a specific file, torrent users use indexing websites. Among the better-known ones are websites like The Pirate Bay or KickassTorrents. Those torrent indexing sites offer search capabilities. Their search results return .torrent files that you download and that are used by the torrent client software to download the actual files. Some software publishers also offer .torrent files to download their software.

What Is Transmission?

Transmission is a torrent client software for the Linux operating system. It will take .torrent files, connect to the peers and trackers and handle the downloading and sharing of files. Where Transmission differs from other torrent clients is in that it doesn’t have a user interface. It is meant to run on a server and to be accessed and used through a web interface.

Transmission Web Client
Source: transmissionbt.com

The web interface is where you open .torrent files–or paste web links to .torrent files, see the progress of your ongoing and completed downloads and manage all aspects of torrenting.

Why Choose The Raspberry Pi?

Combined with Transmission, a Raspberry Pi makes for one of the cheapest torrent downloading server one can imagine. Why spend several hundreds of dollars–if not a thousand or more–on hardware when the Raspberry Pi has all that’s required. Hardware-wise, all you’ll need is a Raspberry Pi and some external storage–which you may already have–and you could have a machine dedicated to handling torrents in minutes, You’ll no longer need to leave your computer running because of ongoing downloads.

The Raspberry Pi In A Nutshell

Developed in the UK by a non-profit organization called the Raspberry Pi Foundation to teach basic computer science in schools and in developing countries, The Raspberry Pi’s feature set, adaptability, size and affordability (you can get it for around 35 US dollars) have made it immensely popular outside of its intended audience with more than 11 million units sold worldwide since its release in 2012.

The most current model–and the one we recommend using, the Raspberry Pi 3 model B, offers a wide range of features and interfacing capabilities. With a 1.2 GHz, 64-bit, quad-core ARM Cortex-A53 processor, a high-performance Broadcom VideoCore IV graphic processor, 1 GB of RAM, video, audio, and USB interfaces, it really is a powerful and versatile device. Although it has a video interface, it’s not required for its operation and the Raspberry Pi makes a great headless device.

Before We Begin

Although installing and configuring Transmission on a Raspberry Pi is not particularly complicated, there are a few things we need to verify before we start. It would be a shame to be unable to complete the setup because we’re missing something.

A Few Assumptions

We’re assuming that you’ve got your Raspberry Pi up and running the latest version of the Raspbian operating system.

We’re also assuming that you’ve connected some external storage to your Raspberry Pi. It could be an external USB hard disk or it could be some form of Network Attached Storage. We’re also assuming that you’ve tested your storage setup and that it is operating correctly.

Finally, we’re assuming that you have your Raspberry Pi connected to your network–either via Ethernet or WiFi, that you’ve tested that the network is working and that you know how to remotely connect to your Raspberry Pi using SSH.

What You’ll Need

Essentially, you need three things to get this done.

  • A Raspberry Pi.  We strongly suggest a Raspberry Pi 3. Also, it should run the Raspbian Operating System. You’ll also need, of course, the required accessories such as a power adapter, a microSD card and perhaps a case.
  • Some form of external storage. As we mentioned in the previous section, a USB hard disk would be perfectly suited for this purpose and so would some Network Attached Storage. You could even use a USB key. Some of them are quite large these days. It all depends on how much data you intend to store.
  • Last but not least, you’ll also need a computer to do all the installation and configuration and to use the Transmission software once it is installed. It could be pretty much any computer Windows, Macintosh or Linux, as long as it’s connected to the same network as the Raspberry Pi. To be able to remotely connect to the Raspberry Pi for the setup, it should have an SSH client software. On Windows, we recommend Putty. It should also have a web browser to connect to Transmission after installation.

Installing And Configuring Transmission On The Raspberry Pi

There are quite a few steps involved in setting up Transmission on the Raspberry Pi but none is particularly complicated. If you execute each one as specified, you should have a working installation within minutes,

Step 1: Making sure Raspbian is up to date and the latest version.

Before installing any new software, it’s always better to first make sure you have the latest version of the Operating System and that all the patches are installed.

The following steps all assume that you’re connected remotely to the Raspberry Pi using an SSH client running on a computer of your choice.

Enter the following two command, waiting for the first one to finish before launching the second:

sudo apt-get update

sudo apt-get upgrade

You may be prompted to accept some changes when these commands run. If you are, make sure you type “y” to confirm.

Step 2: Installing Transmission

The actual installation is possibly the simplest part of this whole process.

Just type in this command:

sudo apt-get install transmission-daemon

Step 3: Creating Directories

Next, we need to create a few directories where Transmission will store the files being downloaded and the completed files. Let’s assume that your external storage path is /media/storage.

To create the directories, enter these two commands:

mkdir -p /media/storage/Torrent_inprogress

mkdir -p /media/storage/Torrent_complete

Step 4: Setting Permissions

Transmission runs by default as user “debian-transmission“. It is highly recommended not to change this due to security reasons. However, we need Transmission to have the right to write to the Torrent_inprogress and Torrent_complete directories. These directories, created in the previous step, have their permission set by default as 770 for user pi and group pi. We simply need, therefore, to add the”debian-transmission” user to the  “pi” group.

This is accomplished by entering the following command:

sudo usermod -a -G pi debian-transmission

If you’re comfortable with it and know what you’re doing, you may modify this step as per your security requirement. Just make sure your torrent download directories have rw access for “debian-transmission” user.

Step 5: Configuring Transmission

All of the Transmission configuration is stored in a text file named settings.json locate in the /etc/transmission-daemon directory.

Here’s what a typical setting.json file looks like:

 "alt-speed-down": 15,
 "alt-speed-enabled": false,
 "alt-speed-time-begin": 540,
 "alt-speed-time-day": 127,
 "alt-speed-time-enabled": false,
 "alt-speed-time-end": 1020,
 "alt-speed-up": 15,
 "bind-address-ipv4": "",
 "bind-address-ipv6": "::",
 "blocklist-enabled": true,
 "blocklist-url": "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw&fileformat=p2p&archiveformat=gz",
 "cache-size-mb": 4,
 "dht-enabled": true,
 "download-dir": "/media/storage/Torrent_complete",
 "download-limit": 100,
 "download-limit-enabled": 0,
 "download-queue-enabled": true,
 "download-queue-size": 5,
 "encryption": 1,
 "idle-seeding-limit": 30,
 "idle-seeding-limit-enabled": false,
 "incomplete-dir": "/media/storage/Torrent_inprogress",
 "incomplete-dir-enabled": true,
 "lpd-enabled": false,
 "max-peers-global": 200,
 "message-level": 2,
 "peer-congestion-algorithm": "",
 "peer-limit-global": 240,
 "peer-limit-per-torrent": 60,
 "peer-port": 51413,
 "peer-port-random-high": 65535,
 "peer-port-random-low": 49152,
 "peer-port-random-on-start": false,
 "peer-socket-tos": "default",
 "pex-enabled": true,
 "port-forwarding-enabled": true,
 "preallocation": 1,
 "prefetch-enabled": 1,
 "queue-stalled-enabled": true,
 "queue-stalled-minutes": 30,
 "ratio-limit": 2,
 "ratio-limit-enabled": false,
 "rename-partial-files": true,
 "rpc-authentication-required": true,
 "rpc-bind-address": "",
 "rpc-enabled": true,
 "rpc-password": "{46949fbf39bfeec6dc9d4bff9f40c3f52219a4260yk9yGNo",
 "rpc-port": 9091,
 "rpc-url": "/transmission/",
 "rpc-username": "transmission",
 "rpc-whitelist": "",
 "rpc-whitelist-enabled": false,
 "scrape-paused-torrents-enabled": true,
 "script-torrent-done-enabled": false,
 "script-torrent-done-filename": "",
 "seed-queue-enabled": false,
 "seed-queue-size": 10,
 "speed-limit-down": 100,
 "speed-limit-down-enabled": false,
 "speed-limit-up": 100,
 "speed-limit-up-enabled": false,
 "start-added-torrents": true,
 "trash-original-torrent-files": true,
 "umask": 7,
 "upload-limit": 100,
 "upload-limit-enabled": 0,
 "upload-slots-per-torrent": 14,
 "utp-enabled": true

Most of the parameters in the settings.json are somewhat self-explanatory. And normally, you shouldn’t have to change any of them except a few: download-dir, incomplete-dir, rpc-username, rpc-password. They are highlighted in bold in the sample file above.

The first two will need to be replaced by the correct paths to the directories created in step 3. rpc-username can be anything you choose and so can rpc-password. Note that although the rpc-password parameter will appear in clear text as you edit the file, it will be converted to an encrypted hash when you save it.

We’re going to use the nano editor to modify the settings.json file. It can be launched with this command:

sudo nano /etc/transmission-daemon/settings.json

Once the editor is launched, changes the parameters that require changing. After you’re done editing the file, type CTRL-X to exit the nano editor and then type Y when prompted to save the modified file.

Step 6: Reloading Transmission

At this point, you should certainly not restart. This is where several Transmission tutorials screw thing up. Restarting overwrites the configuration file and this certainly not what you want.

What you need is to restart the transmission daemon. You do that with this command:

sudo service transmission-daemon reload

Voila! We’re done. You should not have the Transmission software running headlessly on your Raspberry Pi.

Step 7: Verifying Your Installation

To make sure Transmission is working fine, open a web browser and go to  http://Pi-IP-Address:9091, where Pi-IP-Address should be replaced by the actual IP address of your Raspberry Pi. Alternately, you could also use its hostname instead of it’s IP address.

You’ll be prompted for a user id and password. Enter those you’ve configured and you should get a page similar to this:

Transmission Empty Page

Using Transmission On The Raspberry Pi

Now that we’ve installed Transmission, how do we use it, you may ask? Well, it’s about as easy as installing it. Just remember that Transmission is just a torrent client and just like with any other similar software, you’ll need to do your searches for content somewhere else, like one of the numerous torrent indexing sites that exist.

Once you find a suitable .torrent file, instead of downloading it, right-click the link (or button) and select Copy Link Location from the drop-down context menu.

Copy Link Location

Now head back to the Transmission page and click the folder icon at the top left of the window. In the Upload Torrent File box, right-click the field under “Or enter a URL:” and paste the URL you just copied.

Upload Torrent File

Click the Upload button and your download will start momentarily. You will then be able to monitor the download progress in the Transmission window.

Transmission Download In Progress


For just the price of a Raspberry Pi and some external storage, both of which you may already own, you can have your own media server complete with a Torrent client that you can leave running at all times. Although it has the reputation of being a complicated endeavour, it’s actually not that ard of you have the right set of instructions. And once it is installed, using Transmission is as easy as any other torrent client.

Give Transmission a try and then share your experience with us. We’d love to know how it went, what issues–if any–you had and how you solved them. Use the comments below to share your thoughts with us.

Don't miss this great deal

Leave a comment