transmission-rss is basically a workaround for transmission's lack of the ability to monitor RSS feeds and automatically add enclosed torrent links.
It works with transmission-daemon and transmission-gtk (if the web frontend is enabled in the settings dialog). Sites like showrss.karmorra.info and ezrss.it or self-hosted seriesly instances are suited well as feed sources.
A tool called transmission-add-file is also included for mass adding of torrent files.
As it's done with poems, I devote this very artful and romantic piece of code to the single most delightful human being: Ann.
The minimum supported Ruby version is 1.9.3.
gem install transmission-rss
git clone https://github.com/nning/transmission-rss
cd transmission-rss
bundle
gem build transmission-rss.gemspec
gem install transmission-rss-*.gem
A yaml formatted config file is expected at /etc/transmission-rss.conf
. Users
can override some options for their transmission-rss instances by providing a
config at ~/.config/transmission-rss/config.yml
(or in $XDG_CONFIG_HOME
instead of ~/.config
).
It should at least contain a list of feeds:
feeds:
- url: http://example.com/feed1
- url: http://example.com/feed2
Feed item titles can be filtered by a regular expression:
feeds:
- url: http://example.com/feed1
regexp: foo
- url: http://example.com/feed2
regexp: (foo|bar)
Feeds can also be configured to download files to specific directory:
feeds:
- url: http://example.com/feed1
download_path: /home/user/Downloads
The following configuration file example contains every existing option
(although update_interval
, add_paused
, server
, fork
, and pid_file
are
default values and could be omitted). The default log_target
is STDERR.
privileges
is not defined by default, so the script runs as current
user/group. login
is also not defined by default. It has to be defined, if
transmission is configured for HTTP basic authentication.
feeds:
- url: http://example.com/feed1
- url: http://example.com/feed2
- url: http://example.com/feed3
regexp: match1
- url: http://example.com/feed4
regexp: (match1|match2)
- url: http://example.com/feed4
download_path: /home/user/Downloads
- url: http://example.com/feed4
regexp:
- match1
- match2
- url: http://example.com/feed5
regexp:
- matcher: match1
download_path: /home/user/match1
- matcher: match2
download_path: /home/user/match2
update_interval: 600
add_paused: false
server:
host: localhost
port: 9091
rpc_path: /transmission/rpc
login:
username: transmission
password: transmission
log_target: /var/log/transmissiond-rss.log
privileges:
user: nobody
group: nobody
fork: false
pid_file: false
seen_file: ~/.config/transmission/seen
The following content can be saved into
/etc/systemd/system/transmission-rss.service
to create a systemd unit.
Remember checking the path in ExecStart
.
[Unit]
Description=Transmission RSS daemon.
After=network.target transmission-daemon.service
[Service]
Type=forking
ExecStart=/usr/local/bin/transmission-rss -f
ExecReload=/bin/kill -s HUP $MAINPID
[Install]
WantedBy=multi-user.target
The unit files are reloaded by systemctl daemon-reload
. You can then start
transmission-rss by running systemctl start transmission-rss
. Starting on
boot, can be enabled systemctl enable transmission-rss
.