Transmission is a tool to download files using torrent service. Transmission-daemon is basically the same, but without user interface. We install it in always-on server (like Raspberry Pi), then access it from different computers. This guide assumes you already have Raspbian OS installed in your Raspberry Pi with LAN setting properly established. My Raspbian image file is dated 9 Feb 2013. Different version of Raspbian might produce different behavior.
Before installing new application or service in Raspbian, make sure to always type this into terminal :
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
If you’re installation is not the latest version, it might take a while as Raspbian will download the latest files from Internet.
Now, open terminal again and install Transmission-daemon:
sudo apt-get install transmission-daemon
Ideally, we need two folders to contain Transmission files:
mkdir /home/pi/progress (for incomplete downloads)
mkdir /home/pi/completed (for completed downloads)
We need to take care about some permission stuff:
sudo usermod -a -G debian-transmission pi (change “pi” with your Raspberry Pi username if necessary)
chgrp debian-transmission /home/pi/progress
chgrp debian-transmission /home/pi/completed
chmod 770 /home/pi/progress
chmod 770 /home/pi/completed
If you wish to combine Raspberry Pi with an existing NAS server for downloading torrents, there’s a chance you will get error message related to permission. There are various ways to solve it, but I shall go with the easiest one: adding your Raspbian username into debian-transmission group (in my case “pi”) then change ownership of your mounted folders using the following commands:
sudo service transmission-daemon stop (stopping Transmisssion)
sudo adduser pi debian-transmission (add pi or your username to debian-transmission group)
sudo nano /etc/init.d/transmission-daemon (change startup user for transmission, change user name to your username: USER=pi)
sudo chown pi -R /var/lib/transmission-daemon/info/ (change owner rights to transmission configuration files to you)
sudo chown pi -R /home/pi/progress (change owner right of download folder to your user)
sudo chown pi -R /home/pi/completed (change owner right of download folder to your user)
sudo chown pi -R /etc/transmission-daemon/settings.json (change owner right of configuration file to your user)
sudo service transmission-daemon start (start Transmission again)
Next, we need to take care of some settings:
sudo nano /etc/transmission-daemon/settings.json
You shall see many setting lines. Feel free to explore those settings one by one, but for now let’s focus only on few important settings to get started.
1. Find rpc-username and rpc-password, change the values. This is supposed to be different from your Raspbian username.
2. Find rpc-whitelist and add the IP addresses of your other computers there (computers you plan to access Transmission from). For my case, I simply add 192.168.1.*
3. Find download-dir and change it into /home/pi/completed or whatever the name of the folder you have prepared before.
4. Find incomplete-dir and change it into /home/pi/progress or whatever the name of the folder you have prepared before.
5. Find watch-dir and change it into /home/pi/torrentwatch or whatever the name of the folder you have prepared before.
Save the settings.json file and force transmission-daemon to load it:
sudo service transmission-daemon reload
Transmission-daemon saves configuration file when it closes. So using restart parameter instead of reload will get the previous settings revert back.
If you change the password, then type sudo service transmission-daemon reload followed by sudo service transmission-daemon restart.
Now you need to know the IP address of your Raspberry Pi.
ifconfig eth0 (if you’re using network cable)
ifconfig wlan0 (if you’re using WiFi)
You might also want to make your Raspberry Pi having a static IP address:
sudo nano /etc/network/interfaces
Then change this line:
iface eth0 inet dhcp
into:
iface eth0 inet static
and add the following lines below the iface line:
address 192.168.1.8 (change this with your desired address for the Pi)
netmask 255.255.255.0
network 192.168.1.1
broadcast 192.168.1.255
gateway 192.168.1.254
Of course, you should adjust the lines according to your network settings.
All done. You might want to restart your Raspberry Pi, then try the connection from another machine.
In the other machine, open web browser and type:
http://your_server_ip_address:your_port_from_rpc-port/your_setting_from_rpc-url/
For example:
http://192.168.1.8:9091/transmission/
You will be asked username and password, which you need to answer with the value of rpc-username and rpc-password.
Also read: my other posts about Raspberry Pi
After a couple of days stumbling around with other instructions trying to get transmission to work I stumbled upon this and it’s got it up and running, no problem. Thank you very much for taking the time to share your skills with the world, you have solved my headaches (which were largely permission problems I think).
I have added watch dir setting to the end of settings.json as:
“watch-dir”: “/media/Pi/Dropbox/Torrent_files/”,
“watch-dir-enabled”: true,
unfortunately this stops transmission from starting with:
Job for transmission.service failed. See ‘systemctl status transmission.service’ and ‘journalctl -xn’ for details
Removing watch dir from setting solves the problem and transmission starts.
Any ideas how to resolve this problem, I’d really like to be able to use watch dir function.
PS
Transmission is running on osmc on raspberry Pi 3; I tried setting permissions to the Torrent_files foldes as described above, but it did not work
will this method work on new raspbian jessie ?
Whenever I try to download a torrent, it downloads about 500KB and then stops saying:
“Error: Permission denied (Path/to/the/file.ext)
I set all the permission preferences but I still can’t seem to get it to work.
Any idea what to do?
I have learn a few good stuff here. Certainly price bookmarking for revisiting.
I surprise how a lot effort you set to make any such magnificent informative web site.
and if you need and updated version of transmission without build it from the source you can use this instructions:
http://raspberrypi.stackexchange.com/a/19828/17810
Remarkable issues here. I am very glad to see your post.
Thanks a lot and I am having a look ahead to touch you. Will you kindly drop me a e-mail?
Hey there! Would you mind if I share your blog with my myspace group?
There’s a lot of people that I think would really enjoy your
content. Please let me know. Thank you
Hi would you mind sharing which blog platform you’re working with?
I’m planning to start my own blog in the near future but I’m having a tough
time selecting between BlogEngine/Wordpress/B2evolution and Drupal.
The reason I ask is because your design and style seems different then most
blogs and I’m looking for something unique.
P.S Apologies for being off-topic but I had to ask!
thanks guys, it all works perfectly well.
Hi Robert and thanks for this post.
I´ve installed transmission and transmission-daemon before find you post but I have a question.
When I installed the daemon I never can start the web-interface, only when I set the daemon user as root. Then I follow your instructions about permissions but still the same problem. If I use the pi user daemon start but web-interface no.
Do you have any idea where could be the problem?
Got it up and running on my Rpi too.
Important is to set a comma at the end of the line directly above the watch entry and none after that:
Before:
“utp-enabled”: true
}
After:
“utp-enabled”: true,
“watch-dir”: “/media//USB-250//torrentwatch/”,
“watch-dir-enabled”: true
}
GREAT! That watching is the only advantage deluge had for me and that’s gone now. ;-)
It looks like you have also need to add permission to the following folder:
chgrp debian-transmission /home/pi/torrentwatch
chmod 770 /home/pi/torrentwatch
otherwise, the torrentwatch function won’t work. It’s very frustrating!!!
if you have problem using “http://192.168.1.8:9091/transmission/” to get access transmission via web gui, please use “http://192.168.1.8:9091/transmission/web/” to access it.
Correction on watchdir syntax (leading and trailing bonus slashes):
“watch-dir”: “\/blah//torrentwatch\/”,
“watch-dir-enabled”: true
Thanks very much for the post, worked well and i’m up and running here.
As others may benefit, I had to add:
“watch-dir”: “/blah//torrentwatch/”,
“watch-dir-enabled”: true
to my settings.json at the bottom.. it wasn’t already there. seems to work ok.
I also had to make sure the daemon was stopped while editing the settings. I tried your method 2-3 times and the file kept getting overwritten so i’m not sure why that is (Your explanation and logic of the overwriting isn’t lost on me, it just seems to keep happening unless the service is stopped).
For what it’s worth at the end I can also browse http://raspberrypi:9091 from my desktop as a shorter way to access transmission. just another way to accomplish the same.
Thanks for the feedback.