Integrations
Connect Plexarr to qBittorrent, SABnzbd, Plex, Discord, Grafana, and more.
Discord Bot
The included bot mirrors Doplarr functionality. Users request media via slash commands. The bot searches metadata and presents clean results.
| Command | Description |
|---|---|
| /status | Server health check |
| /torrents | List active downloads with progress bars |
| /request | Search TMDB/Jikan and show metadata results |
| /search | Direct torrent search across providers |
| /library | Plex activity via Tautulli |
Tautulli Integration
Tautulli provides deep Plex activity tracking. Configure tautulli.url and tautulli.api_key to enable:
/api/tautulli/activity— current stream count, transcodes, direct plays- Discord
/libraryslash command
Install: tautulli.com (Docker recommended)
Overseerr Integration
Overseerr handles user requests for Plex. Plexarr can proxy its status:
/api/overseerr/status— Overseerr health check
Install: overseerr.dev (Docker recommended)
Discord Webhooks
Plexarr sends rich embed notifications to Discord when configured with a webhook URL.
Triggered events:
- Torrent added (title, size, category)
- Torrent completed (save path)
- URL download completed (filename, path, size)
- FFmpeg processed (audio tracks, subtitle tracks, defaults)
- Torrent error
- File uploaded (filename, destination, size)
- Periodic status ping (every 5 minutes, optional)
- Progress updates (every 60 seconds for active downloads)
Create a webhook in Discord: Server Settings > Integrations > Webhooks. Copy URL and paste into discord.webhook_url.
Grafana Dashboard
The pre-built dashboard includes 5 panels:
- Active Torrents — stat panel showing current count
- Download Speed — time series graph (bytes/s)
- Upload Speed — time series graph (bytes/s)
- Torrents Added by Provider — bar gauge
- Files Uploaded by Destination — stat panel
Import via Import Dashboard > Paste JSON in Grafana.
Windscribe VPN Integration
Plexarr can control Windscribe VPN from the web UI. Endpoints:
/api/vpn/status— check connection state, IP, location/api/vpn/connect— connect to a location/api/vpn/disconnect— disconnect VPN/api/vpn/locations— list available server locations
Enable in config: vpn.enabled, set vpn.cli_path to the Windscribe CLI binary.
Rapidgator / URL Downloader
Plexarr supports downloading from direct URLs and Rapidgator. Two modes:
Generic Direct Download
Any HTTP URL is downloaded via the server and saved to the configured path.
Rapidgator Premium
Set url_downloader.rapidgator.premium to true and add your api_key. Files are downloaded via the Rapidgator API v2.
Rapidgator Free
Free mode requires captcha solving. Not reliable. The server will warn you and suggest enabling premium or using torrents.
Cloudflare Solver
Some torrent providers (TorrentGalaxy, 1337x) use Cloudflare protection. These sites are NOT listed by default in the provider search.
To enable them:
- Install
cloudscraper:pip install cloudscraper - Enable in config:
cloudflare_solver.enabled = true - The providers will automatically appear in the UI
You can also use the CORS proxy with ?cf_bypass=1 to fetch individual URLs.
Status endpoint: /api/cloudflare/status
SABnzbd Integration
Plexarr controls SABnzbd via its JSON API. Configure sabnzbd.host, sabnzbd.api_key, and sabnzbd.categories_map in config.json.
Endpoints
/api/sabnzbd/queue— current download queue/api/sabnzbd/history— completed history/api/sabnzbd/add— add NZB by URL or raw upload/api/sabnzbd/pause— pause entire queue/api/sabnzbd/resume— resume queue/api/sabnzbd/delete— delete job by ID/api/sabnzbd/speed— speed limit status
Category Mapping
tv -> /media/plex/TV Shows
movies -> /media/plex/Movies
anime -> /media/plex/Anime
music -> /media/plex/Music
Files downloaded by SABnzbd are automatically sorted into Plex paths if the category matches the configured map.
NZBGeek Integration
Search NZBGeek from the web UI and send NZBs directly to SABnzbd.
Search Endpoint
GET /api/nzbgeek/search?q=Movie+Name&category=movies&limit=50
Requires nzbgeek.enabled and nzbgeek.api_key. Categories: tv, movies, anime, music, books, other.
FFmpeg Post-Processing
After downloading or uploading a media file, Plexarr can run FFmpeg to:
- Set default English audio track (or any configured language)
- Set default English subtitle track
- Strip unwanted languages (optional)
- Detect language from non-standard metadata (MediaHub-eng, Pahe.in, etc.)
Configuration:
ffmpeg.default_audio_lang— default audio language (default: eng)ffmpeg.default_subtitle_lang— default subtitle language (default: eng)ffmpeg.wanted_langs— languages to keep (default: ["eng", "jpn"])ffmpeg.strip_unwanted_langs— remove non-wanted tracks (default: false)ffmpeg.post_process_downloads— auto-run after download (default: true)
Desktop Client (PyWebView)
The Plexarr Desktop Client is a standalone PyWebView application that wraps the server UI in a native window. It runs on Windows, macOS, and Linux.
Features
- System Tray: Minimize to tray, restore from icon, quick-actions menu.
- LAN Discovery: Auto-detect Plexarr servers on the local network.
- Multi-Server Profiles: Save and switch between multiple server URLs.
- Mini Mode: Compact floating window for quick status checks.
- Debug Console: Built-in developer console for troubleshooting.
- Keyboard Shortcuts: Global shortcuts for quick actions.
- Portable Mode: Run from a USB drive without installation.
Running from Source
cd client/
pip install -r requirements.txt
python main.py
Packaging
See Packing.md for detailed build instructions for Windows (.exe), macOS (.app), and Linux (AppImage / binary).
Auto Renamer
The renamer uses guessit to parse filenames, then strips release tags and restructures into Plex folders.
Stripped Tags
1080p, 720p, 4K, x264, x265, HEVC, AVC, BluRay, WEB-DL, WEBRip, DVDRip, BDRip, HDTV, HDR, Dual Audio, ESub, KORSUB, repack names (HorribleSubs, YIFY, RARBG, YTS, etc.), 10-bit, 8-bit, and bracketed groups.
API
POST /api/sort
path=/media/plex/Downloads/movie.mkv&media_type=movie
POST /api/sort/batch
directory=/media/plex/Downloads/unsorted
Screen Stream
Uses mss to capture the primary monitor, Pillow to JPEG-compress, and SocketIO to broadcast base64 frames to all connected clients.
Clicking on the stream image sends mouse coordinates to the server via /api/remote/mouse. Keyboard input is supported via the text panel.
Disabled by default for performance and security.
CORS Proxy
/proxy?url=https://... forwards any HTTP request through the server. This allows the client web UI to fetch tracker pages and torrent files without browser CORS restrictions.
Add ?cf_bypass=1 to use the Cloudflare solver for a single request.
File Upload & Browser
Drag and drop files from any client into the server. Browse directory trees. Download files back. Path traversal is blocked. Configurable file size limits and extension whitelists.