Make SABnzbd and SickGear play nice on Synology

corcoran
2 min readFeb 12, 2021

I’ve written a bunch of other medium.com stories for claps and cash recently surrounding TLS certificates for my Synology box and for running applications. I’ve got both SickBeard-custom and SABnzbd (both from synoCommunity) on my Synology NAS and they have worked well together.

However, once I started digging round into the history of SickBeard — notably the horror show that are its abandoned branches on GitHub, as well as hundred+ open PR’s including, specifically, a PR request to allow SickBeard to use LetsEncrypt certificates properly, it became obvious I needed a fork (as SynoCommunity SickBeard app supports this) instead.

Hello SickGear — and wow, what a hugely different/same app this is! A simple install using the ‘Install from fork’ option in SynoCommunity SickBeard app and I was up and running in very little time.

Getting SickGear working with the SABnzbd version (3.11) from SynoCommunity was a little more interesting, however. So story for claps.

Once you’ve installed SickGear, you might want to configure it for use with SABnzbd. The developer provides you with 3 files that you need to configure and run ‘from SABnzbd’. Except that on Synology, these two apps have totally different contexts.

So we need to complete 2 tasks.

  1. Symlink the scripts/config files from SickGear into Sabnzbd (so that if they’re updated by SickGear, nothing breaks)
  2. Install python Requests library for SABnzbd to work with SickGear.

Symlinks

SSH into your Synology NAS. Know where your SickGear (sickbeard-custom) and Sabnzbd install directories are. Likely:

/volume1/\@appstore/sabnzbd/ 
# and
/volume1/\@appstore/sickbeard-custom/

Now create 3 symlinks in Sabnzbd back to SickGear’s sabnzbd scripts (using sudo):

sudo ln -s /volume1/@appstore/sickbeard-custom/var/SickBeard/autoProcessTV/autoProcessTV.py /volume1/@appstore/sabnzbd/var/scripts/autoProcessTV.pysudo ln -s /volume1/@appstore/sickbeard-custom/var/SickBeard/autoProcessTV/sabToSickGear.py /volume1/@appstore/sabnzbd/var/scripts/sabToSickGear.pysudo ln -s /volume1/@appstore/sickbeard-custom/var/SickBeard/autoProcessTV/autoProcessTV.cfg /volume1/@appstore/sabnzbd/var/scripts/autoProcessTV.cfg

When you modify your Sabnzbd post-processing scripts for ‘tv’ — you can now select the sabToSickGear.py file.

Python Requests

Neither SickGear nor SABnzbd “need” Python’s Requests library to “work” 🙄
so you’re kind of stuck between two very small peacocks 🎧

The sabToSickGear script, owned by SickGear, however, explicitly requires the Requests library, running inside SABnzbd, so you’ll have to update your SABnzbd app to include it.

Still SSH’d into your Synology box, you need to activate the SABnzbd Python virtual environment bundled with the app, install Requests, running the following commands. CD into the Sabnzbd root folder and activate virtual(env):

user@syno:/volume1/@appstore/sabnzbd$ source env/bin/activate

You will notice your prompt will change to show you’re now running a virtualenv:

(env) user@syno:/volume1/@appstore/sabnzbd$

Install Requests

sudo pip3 install requests

Exit virtual(env)

deactivate

Back at the prompt. All done! Your post-processing from Sabnzbd to SickGear will now run.

Update 15/01/2024 — not related to the story above, but to serve as a reminder for me; when re-issuing a new certificate from ZeroSSL, you need to make the private.key readable for Sabnzbd and SickGear to work. So “chmod 644 my.domain.dev.key” is what’s needed there.

--

--

corcoran

Is this bio too short? Or is it just the right length?