* Unify the line endings to the Unix style (LF only). * Fix (where possible) or remove broken links. * Improve the documentation. Fix or remove broken links (depending on whether I could find a working version of the resource). Change all links to use HTTPS instead of HTTP. Unify the capitalizations (e.g. uppercase abbreviations, capitalize proper names and downcase other words). Fix or improve some parts of the text, clarifying what is meant. Improve some parts of the program examples (e.g. only use root privileges where really required).
3.7 KiB
Transmission scripts
Introduction
Thanks to the powerful RPC, transmission-remote
can talk to any client that has the RPC enabled. This means that a script written using transmission-remote
or RPC can, without rewrite, communicate with all the Transmission clients: Mac, Linux, Windows, and headless.
Mac OS users may wonder whether there will be AppleScript scripts, the answer is ''no''. Although AppleScript is a nice technology, it's a pain to implement. However, Mac OS X is a Unix after all, so any script you find here will also work on the Mac. Even from within AppleScript, you can run these scripts by typing: do shell script "path/to/script"
.
How-To
If you are interested at writing scripts for Transmission, have a look at the following pages:
- [wiki:man Transmission man pages]
- [wiki:ConfigFiles Configuration Files]
- [wiki:EditConfigFiles Editing Configuration Files]
- [wiki:EnvironmentVariables Environment Variables]
- [wiki:rpc RPC Protocol Specification]
For those who need more information how to use the scripts, have a look at the following links:
- [https://help.ubuntu.com/community/CronHowto Cron How-To]: Run scripts at a regular interval
Scripts
Start/Stop
- [wiki:Scripts/initd init.d script] (Debian, Ubuntu and BSD derivatives)
- [wiki:Scripts/runscript runscript] (Gentoo and other
runscript
-compatible systems)
On torrent completion
Transmission can be set to invoke a script when downloads complete. The environment variables supported are:
TR_APP_VERSION
- Transmission's short version string, e.g.4.0.0
TR_TIME_LOCALTIME
TR_TORRENT_BYTES_DOWNLOADED
- Number of bytes that were downloaded for this torrentTR_TORRENT_DIR
- Location of the downloaded dataTR_TORRENT_HASH
- The torrent's info hashTR_TORRENT_ID
TR_TORRENT_LABELS
- A comma-delimited list of the torrent's labelsTR_TORRENT_NAME
TR_TORRENT_TRACKERS
- A comma-delimited list of the torrent's trackers' announce URLs
[https://trac.transmissionbt.com/browser/trunk/extras/send-email-when-torrent-done.sh Here is an example script] that sends an email when a torrent finishes.
Obsolete
Functionality of these scripts has been implemented in libtransmission and is thus available in all clients.
- [wiki:Scripts/EmailNotifier Email Notification Script]
- [wiki:Scripts/BlockListUpdater Block List Updater]
- [wiki:Scripts/Watchdog Watch Directory Script]
- [wiki:Scripts/Scheduler Bandwidth Scheduler]
contrib/scripts
Tomas Carnecky (aka wereHamster) is maintaining a set of scripts in his [https://github.com/wereHamster/transmission/tree/master/contrib/scripts/ GitHub repository].
Falk Husemann (aka hxgn) is maintaining scripts in his [https://falkhusemann.de/category/tcp_ip/transmission-tcp_ip/ blog].
Oguz wrote [https://oguzarduc.blogspot.com/2012/05/transmission-quit-script-in-php.html on his blog] a PHP script to stop Transmission after it finishes downloading and seeding. Scripts which have not yet been ported and may not work with the latest version:
- https://pastebin.com/QzVxQDtM: Bash - (cron)script to keep a maximum number of torrents running; starting and pausing torrents as necessary
- https://github.com/jaboto/Transmission-script - (cron)script set network limits according to the number of clients in the network
Security with systemd
transmission-daemon
's packaging has many permissions disabled as a standard safety measure. If your script needs more permissions than are provided by the default, users have reported that it can be resolved by changing to NoNewPrivileges=false
in /lib/systemd/system/transmission-daemon.service
.