This is a simple Flask application that listens for webhook events from Radarr and triggers a library refresh on Jellyfin.
- The app exposes an endpoint
/radarr-webhook
to receive POST requests from Radarr. - Radarr should send custom headers:
X-Jellyfin-Url
(your Jellyfin server URL) andX-Jellyfin-Api-Key
(your Jellyfin API key). - Upon receiving a Radarr event, the app triggers a refresh on the Jellyfin library by calling the Jellyfin API.
The app runs a Flask server on port 5001
and listens for Radarr webhook events.
The Dockerfile uses Python 3.12 slim image, installs dependencies via uv
package manager, and runs the app with:
FROM python:3.12-slim
WORKDIR /app
COPY uv.lock .
RUN pip install --no-cache-dir uv && uv install
COPY . .
EXPOSE 5001
CMD ["uv", "run", "main.py"]
The docker-compose file builds the Docker image named radarr-jellyfin-notifier
, maps port 5001, and mounts the local directory for easy development:
services:
radarr-jellyfin-notifier:
build: https://github.com/tommekevda/radarr-jellyfin-notifier.git
container_name: radarr-jellyfin-notifier
restart: unless-stopped
ports:
- "5001:5001"
# volumes:
# - .:/app
command: uv run main.py
- In Radarr, go to Settings > Connect.
- Add a new Webhook.
- Set the URL to
http://<your-server-ip>:5001/radarr-webhook
. - Add the following custom headers:
X-Jellyfin-Url
: Your Jellyfin server URL (e.g.http://jellyfin.local:8096
)X-Jellyfin-Api-Key
: Your Jellyfin API key
- Save and test the webhook.
Make sure you have uv
installed and your dependencies in uv.lock
.
Run:
uv run main.py
The app will listen on port 5001.