Overview
Discover what makes Reaparr powerful
Reaparr is a self‑hosted, cross‑platform media downloader built to bridge Plex libraries. At its core it pulls metadata from one or more remote Plex servers, resolves the underlying media files (direct URLs, external providers, or local storage), and streams them into a target Plex instance while maintaining library integrity. The application is written in **C#** using the **.NET 8** runtime, exposing a modern HTTP API alongside a responsive Blazor WebAssembly UI that runs entirely in the browser. This dual‑fronted architecture allows developers to interact programmatically or through the GUI with equal ease.
Backend
Frontend
Database
Containerization
Overview
Reaparr is a self‑hosted, cross‑platform media downloader built to bridge Plex libraries. At its core it pulls metadata from one or more remote Plex servers, resolves the underlying media files (direct URLs, external providers, or local storage), and streams them into a target Plex instance while maintaining library integrity. The application is written in C# using the .NET 8 runtime, exposing a modern HTTP API alongside a responsive Blazor WebAssembly UI that runs entirely in the browser. This dual‑fronted architecture allows developers to interact programmatically or through the GUI with equal ease.
Technical Stack & Architecture
- Backend – ASP.NET Core 8 Web API, leveraging the PlexNet library for authentication and metadata queries. The download engine is a custom multi‑threaded scheduler that uses
HttpClientFactoryfor efficient connection pooling and supports resumable downloads via HTTP range requests. - Frontend – Blazor WebAssembly with Tailwind CSS for styling. The SPA consumes the API over
fetchand websockets to stream download progress in real time. - Database – SQLite (file‑based) for lightweight persistence of user sessions, download queues, and library mappings. A Docker volume can be mounted to persist data across container restarts.
- Containerization – Official Docker image (
reaparr/reaparr) is built from a multi‑stage .NET publish container, exposing port 8080 by default. The image is fully Alpine‑based, keeping the footprint under 200 MB.
Core Capabilities & Developer APIs
- Plex Integration – OAuth‑style authentication to any Plex server; the API exposes endpoints for listing libraries, fetching media items, and resolving file URLs (including support for Plex Pass‑protected content when authenticated).
- Download Manager – Exposes a RESTful queue API (
/api/downloads) that accepts media identifiers, priority flags, and concurrency limits. Webhooks can be configured to trigger external scripts when a download completes. - Metadata Sync – A background service that periodically reconciles the target library with source servers, updating titles, thumbnails, and collection data via Plex’s metadata API.
- Extensibility – A plugin system based on .NET assemblies loaded at runtime. Plugins can hook into the download pipeline, modify file paths, or inject custom post‑processing steps (e.g., transcoding via FFmpeg).
Deployment & Infrastructure
Reaparr is designed for self‑hosting on any Docker‑capable host, from Raspberry Pi to cloud VMs. The single‑container deployment includes all dependencies; no external services are required beyond a Plex server and optional database volume. For scalability, the application can be horizontally scaled by running multiple instances behind a reverse proxy and sharing a common SQLite file via NFS or cloud storage; the API supports stateless authentication, so session data can be stored in Redis if needed.
Integration & Extensibility
Developers can integrate Reaparr into existing media pipelines by consuming its HTTP API or subscribing to webhooks. The plugin framework allows custom logic without modifying the core codebase, making it straightforward to add support for other media platforms (e.g., Jellyfin) or to implement custom download policies. The application also supports environment‑based configuration, enabling CI/CD workflows that inject secrets and tuning parameters at runtime.
Developer Experience
The documentation is concise yet thorough, with example payloads and endpoint summaries. A dedicated Discord channel offers real‑time support, while the GitHub repository follows semantic versioning and includes a contribution guide. Configuration is primarily environment‑variable driven, which aligns with modern DevOps practices. The open‑source license (MIT) removes licensing friction for commercial deployments.
Use Cases
- Home Media Sync – Automate pulling new releases from a friend’s Plex server into your own library with minimal manual intervention.
- Enterprise Media Consolidation – Aggregate content from multiple departmental Plex servers into a single catalog for streamlined access.
- Continuous Media Backup – Use the webhook system to trigger backup scripts or cloud uploads once a download finishes.
Advantages Over Alternatives
- Performance – The native .NET implementation and efficient HTTP client pooling deliver high throughput, especially on low‑latency networks.
- Flexibility – The plugin architecture and Webhook support let developers extend functionality without fork‑ing the repository.
- Simplicity – A single Docker image, no external database requirements, and a self‑contained UI reduce operational overhead.
- Licensing – MIT license allows commercial use without royalties, unlike some proprietary media downloaders.
In summary, Reaparr offers a developer‑friendly, extensible platform for managing and downloading media across Plex servers. Its modern .NET stack, robust API surface, and lightweight deployment model make it an attractive choice for anyone looking to automate media ingestion in a self‑hosted environment.
Open SourceReady to get started?
Join the community and start self-hosting Reaparr today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
django-wiki
Collaborative wiki built on Django, supporting Markdown editing
Gotify
Real‑time message server for self‑hosted push notifications
SearXNG
Privacy‑focused metasearch engine that aggregates results without tracking
YaCy
Decentralized, privacy‑first search engine for personal or intranet use
ExpenseOwl
Simple self-hosted expense tracker with monthly pie charts
Medusa
Self-hosted other