iPlayarr

March 13, 2026 ยท View on GitHub

iPlayarr is a companion tool for Sonarr and Radarr, making it easy to integrate get_iplayer for searching and downloading iPlayer content directly. It acts as both an indexer and a download client, allowing seamless automation of TV and movie downloads.

Discord Build Status Coverage Status

๐Ÿ“ธ Screenshots

Login View Queue View

Search View Details View

Why iPlayarr?

iPlayer offers a wide range of high-quality content, but integrating it with Sonarr and Radarr has always been tricky. iPlayarr solves this problem by:

  • Acting as a Newznab-compatible indexer, making iPlayer content searchable within Sonarr/Radarr
  • Presenting as a SABnzbd-compatible download client, allowing automatic downloads and post-processing
  • Handling the full download lifecycle, from fetching content with get_iplayer to organizing completed files

Unlike torrents and Usenet, iPlayarr operates in a less legally ambiguous space by only downloading content that is freely available for streaming.

Why Create iPlayarr?

This project started as an experiment: Is it possible to integrate iPlayer with Sonarr/Radarr in a clean, automated way?

Most existing solutions rely on torrents or Usenet, but I wanted something that could get media from a reliable source. iPlayarr functions like a personal DVR for iPlayer, making it easier to automate downloads without needing traditional PVR software.

Getting Started

Download/Installation

The simplest way to use iPlayarr is via Docker:

docker run -d --name iplayarr \
  -v ./cache:/data \
  -v ./config:/config \
  -v ./logs:/logs \
  -v /path/to/incomplete:/incomplete \
  -v /path/to/complete:/complete \
  --env-file=env-file \
  -p 4404:4404 \
  nikorag/iplayarr:latest

Alternatively, use the bundled Dockerfile:

docker build -t iplayarr .
docker run -d --name iplayarr \
  -v ./cache:/data \
  -v ./config:/config \
  -v ./logs:/logs \
  -v /path/to/incomplete:/incomplete \
  -v /path/to/complete:/complete \
  --env-file=env-file \
  -p 4404:4404 \
  iplayarr

Or use Docker Compose:

services:
    iplayarr:
        image: 'nikorag/iplayarr:latest'
        container_name: 'iplayarr'
        environment:
            - 'API_KEY=1234'
            - 'DOWNLOAD_DIR=/mnt/media/iplayarr/incomplete'
            - 'COMPLETE_DIR=/mnt/media/iplayarr/complete'
            - 'PUID=1000'
            - 'PGID=1000'
        ports:
            - '4404:4404'
        volumes:
            - '/mnt/media:/mnt/media'
            - './cache:/data'
            - './config:/config'
            - './logs:/logs'

You can pre-set the following environment variables, or you can set them in the Settings menu once the container is up.

PropertyDescription
API_KEYApi key to secure your iplayarr instance
DOWNLOAD_DIRDownload directory for in progress pulls
COMPLETE_DIRDirectory to move completed files to

There's a few more optional settings too:

PropertyDescription
ACTIVE_LIMITHow many downloads are allowed simultaneously, defaults to 3
REFRESH_SCHEDULECron expression for when to proactively refresh schedule, defaults to hourly, on the hour
HIDE_DONATEIf you don't like the Kofi donate links you can hide them
PUIDHost User ID for file permissions
PGIDHost Group ID for file permissions

Usage

Authentication

The default details are:

UsernamePassword
adminpassword

Sonarr and Radarr link

Info: The best way to add iPlayarr to Sonarr or Radarr is to use the "Apps" section of the web UI in iPlayarr

iPlayarr presents itself as both an indexer and a download client on port 4404. You can configure it automatically in the Settings menu or manually as follows:

Add iPlayarr manually as a Download Client

  1. Go to Settings > Download Clients in Sonarr/Radarr.
  2. Add a new SABnzbd client with the following details:
PropertyValue
NameiPlayarr
HostYour_Docker_Host
Port4404
API KeyAPI_KEY from above
Categoryiplayer
  1. Test and save.

Add iPlayarr manually as an Indexer

  1. Go to Settings > Indexers in Sonarr/Radarr.
  2. Add a new Newznab indexer with these settings:
PropertyValue
NameiPlayarr
URLhttp://Your_Docker_Host:4404
API KeyAPI_KEY from above
Download ClientiPlayarr (created above)

Web Interface

To access the web frontend, visit http://Your_Docker_Host:4404. From here, you can manage settings, view logs, and monitor downloads.

Development Setup

To run iPlayarr locally for development:

Prerequisites

  • Node.js (see .node-version for current version)
  • Docker (for local dev instance of Redis)

Installation

  1. Install dependencies for both backend and frontend:
npm run install:both
  1. Start Redis using Docker (or see Redis section below to use another instance):
npm run serve:redis
  1. Start the development server (runs backend and frontend concurrently):
npm run dev

The application will be available at:

  • Frontend: http://localhost:8080 (Vue dev server)
  • Backend API: http://localhost:4404

Additional Useful Scripts

ScriptDescription
npm run build:bothBuild backend and frontend for production
npm testRun tests with coverage
npm run lintRun ESLint
npm run prettierCheck code formatting

Redis

iPlayarr uses Redis for storage. This is built into the container and doesn't require any additional setup, but if you would like to use a standalone redis instance, set the following settings:

  • REDIS_HOST
  • REDIS_PORT
  • REDIS_PASSWORD (optional)
  • REDIS_SSL (optionally 'true')

If these are all set, it will not start the bundled version of Redis.