Skip to content
This repository was archived by the owner on May 9, 2026. It is now read-only.

thejuran/iplayarr

 
 

Repository files navigation

Description iPlayarr

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.

Property Description
API_KEY Api key to secure your iplayarr instance
DOWNLOAD_DIR Download directory for in progress pulls
COMPLETE_DIR Directory to move completed files to

There's a few more optional settings too:

Property Description
ACTIVE_LIMIT How many downloads are allowed simultaneously, defaults to 3
REFRESH_SCHEDULE Cron expression for when to proactively refresh schedule, defaults to hourly, on the hour
HIDE_DONATE If you don't like the Kofi donate links you can hide them
PUID Host User ID for file permissions
PGID Host Group ID for file permissions

Usage

Authentication

The default details are:

Username Password
admin password

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:
Property Value
Name iPlayarr
Host Your_Docker_Host
Port 4404
API Key API_KEY from above
Category iplayer
  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:
Property Value
Name iPlayarr
URL http://Your_Docker_Host:4404
API Key API_KEY from above
Download Client iPlayarr (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

Script Description
npm run build:both Build backend and frontend for production
npm test Run tests with coverage
npm run lint Run ESLint
npm run prettier Check 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.

About

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.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 74.9%
  • Vue 22.0%
  • JavaScript 1.7%
  • Less 0.9%
  • Shell 0.2%
  • Dockerfile 0.2%
  • HTML 0.1%