iPlayarriPlayarr 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.


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:
Unlike torrents and Usenet, iPlayarr operates in a less legally ambiguous space by only downloading content that is freely available for streaming.
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.
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 |
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
| Property | Value |
|---|---|
| Name | iPlayarr |
| Host | Your_Docker_Host |
| Port | 4404 |
| API Key | API_KEY from above |
| Category | iplayer |
Add iPlayarr manually as an Indexer
| Property | Value |
|---|---|
| Name | iPlayarr |
| URL | http://Your_Docker_Host:4404 |
| API Key | API_KEY from above |
| Download Client | iPlayarr (created above) |
To access the web frontend, visit http://Your_Docker_Host:4404.
From here, you can manage settings, view logs, and monitor downloads.
To run iPlayarr locally for development:
.node-version for current version)npm run install:both
npm run serve:redis
npm run dev
The application will be available at:
http://localhost:8080 (Vue dev server)http://localhost:4404| 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 |
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:
If these are all set, it will not start the bundled version of Redis.
$ claude mcp add iplayarr \
-- python -m otcore.mcp_server <graph>