Disc scanning and HEVC encoding queue for Sonarr/Radarr
Find a file
2026-05-26 15:19:12 -07:00
public feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
scripts feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
.gitignore feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
.gitleaks.toml feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
api-keys.conf.example feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
Dockerfile feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
LICENSE feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
package.json feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
README.md feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
scanner.js feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00
server.js feat: initial public release — disc scanning and HEVC encode queue for Sonarr/Radarr 2026-05-26 15:19:12 -07:00

Discarr

Disc scanning and HEVC encoding queue for Sonarr/Radarr.

Discarr is a lightweight web UI that scans DVD and Blu-ray directory structures (VIDEO_TS / BDMV), lets you map raw VOBs to Sonarr episodes or Radarr movies, queues HEVC encodes via ffmpeg (local or SSH to a remote host), and notifies Sonarr/Radarr on completion.


What it does

Stage Details
Scan Detect VIDEO_TS / BDMV structures and parse IFO chapters
Map Web UI to match disc titles to Sonarr episodes or Radarr movies
Encode Queue HEVC encodes via ffmpeg or HandBrake (local or SSH)
Notify Call Sonarr/Radarr import on completion; optionally notify Tdarr

Requirements

  • Node.js 18+
  • ffmpeg and ffprobe (for metadata scanning)
  • Docker (optional — image included)

Install

git clone https://git.opensourcesolarpunk.com/Circuit-Forge/discarr
cd discarr

No npm dependencies — pure Node.js built-ins only.

Config

mkdir -p ~/.config/media-postprocessor
cp api-keys.conf.example ~/.config/media-postprocessor/api-keys.conf
# Edit api-keys.conf with your Sonarr/Radarr URLs and API keys

All config values can be set as environment variables (env vars override the config file).

Run

node server.js
# or: PORT=8603 node server.js

Open http://localhost:8603 in your browser.

Docker

docker build -t discarr .
docker run -d \
  -p 8603:8603 \
  -v ~/.config/media-postprocessor:/root/.config/media-postprocessor:ro \
  -v ~/.local/share/discarr:/root/.local/share/discarr \
  -v /path/to/media:/media \
  discarr

Notification hooks

Drop the scripts from scripts/ as custom script hooks in Sonarr/Radarr/qBittorrent:

Script Trigger
scripts/sonarr-notify.sh Sonarr: Settings → Connect → Custom Script (On Import, On Episode File Delete)
scripts/radarr-notify.sh Radarr: Settings → Connect → Custom Script (On Import, On Movie File Delete)
scripts/qbittorrent-notify.sh qBittorrent: Options → Downloads → "Run external program on torrent completion"

All scripts use DISCARR_URL env var (default: http://127.0.0.1:8603).


Environment variables

Variable Default Description
PORT 8603 Web UI port
DISCARR_CONFIG ~/.config/media-postprocessor/api-keys.conf Config file path
DISCARR_LOG ~/.local/share/discarr/jobs.log Job log path
DISCARR_QUEUE ~/.local/share/discarr/pending-queue.json Pending queue path
DISCARR_SETTINGS Same dir as queue Runtime settings overlay

License

MIT