transmission/docs/Scripts.md

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.

macOS 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, macOS is a Unix after all, so any script you find here will also work on macOS. 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:

For those who need more information how to use the scripts, have a look at the following links:

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 torrent
  • TR_TORRENT_DIR - Location of the downloaded data
  • TR_TORRENT_HASH - The torrent's info hash
  • TR_TORRENT_ID
  • TR_TORRENT_LABELS - A comma-delimited list of the torrent's labels
  • TR_TORRENT_NAME - Name of torrent (not filename)
  • TR_TORRENT_TRACKERS - A comma-delimited list of the torrent's trackers' announce URLs

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 GitHub repository.

Falk Husemann (aka hxgn) is maintaining scripts in his blog.

Oguz wrote 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:

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.