Automatic NPO watchlist downloader (Dutch television)

Preface

I have been waiting (and waiting) for an app for my Apple TV for a long time now, but it seems to never come. I started looking around for alternatives and stumbled upon flexget, which offers a pluggable framework to ‘get’ stuff media related.
Next to that, I found another useful tool, download-npo, which can download episodes from the NPO-website command-line.
Third, someone created a plugin for Flexget (npo_watchlist) which ties these two together.
Because this is used by Dutch people only and then very few of them I guess, there’s not a lot of support available, so I thought I’d share my setup, because it gave me quite some headaches to get up and running, but looking back it was pretty easy if you know how.

1. Install flexget
2. Install download-npo
3. Create an NPO-account
4. Create a config-file
5. Add it to cron

Code

1. Install Flexget
Make sure you have Python running and install it with pip (this makes it easier to upgrade later on)

sudo pip install --upgrade setuptools
sudo pip install flexget

2. Install download-npo

pip install download-npo

3. Navigate to the NPO-website and create an account.

4. Create a config file
Flexget will look at several places for it’s config-file, I put everything in my ~/.flexget folder. The config file is called ‘config.yml’ and for the npo_watchlist plugin to work it needs minimal information, see this link for the setup.

screen-shot-2016-10-23-at-09-13-18

Updating is easy with pip:

sudo pip install --upgrade setuptools
sudo pip install --upgrade flexget
sudo pip install --upgrade download-npo

5. Add it to cron (crontab -e)

@hourly /usr/local/bin/flexget --cron execute

Results

Flexget now downloads the new episodes to my Plex directory where they are automatically added to a library I called “DVR”. Now every show I add to my watch-list or favorite-list in my NPO-account will be downloaded to Plex so I can watch it on my Apple TV .

Leave a Reply

Your email address will not be published. Required fields are marked *