Spyke

Posts

opensource·Open Sourcebypyr0ball

Discarr: open-source disc rip → Sonarr/Radarr import pipeline [Node.js, GPL-3.0]

Discarr is a self-hosted web UI that bridges disc rips (VIDEO_TS / BDMV / ISO) into Sonarr and Radarr. Scan a disc directory, map the titles to the right episodes or movies in the browser, and it handles the encode queue and arr notification.

Stack: Pure Node.js 18+, no npm packages, only built-in modules. Requires ffmpeg and ffprobe on the host; HandBrake optional. Docker image bundles both.

License: GPL-3.0.

Forgejo (primary): https://git.opensourcesolarpunk.com/Circuit-Forge/discarr GitHub (mirror): https://github.com/pyr0ball/discarr

Still early, issues and PRs welcome.

Discarr: open-source disc rip → Sonarr/Radarr import pipeline [Node.js, GPL-3.0]https://git.opensourcesolarpunk.com/Circuit-Forge/discarrOpen linkView original on reddthat.com

I built a web UI to bridge disc rips into the arr stack: Discarr [GPL-3.0]

I've got a shelf of discs, a MakeMKV box, and a Sonarr/Radarr setup. Getting the ripped files from one to the other has always been tedious. Especially multi-episode discs where you have to figure out which title maps to which episode before you can rename anything.

So I built Discarr: a local Node.js web UI (no npm deps) that handles that pipeline.

Scan a VIDEO_TS/BDMV/ISO directory, get a list of titles with duration and chapter info, map them to Sonarr episodes or Radarr movies, queue the HEVC encode (ffmpeg or HandBrake, local or SSH to a remote encode box), and have it notify Sonarr/Radarr when done.

System deps: Node.js 18+, ffmpeg + ffprobe. HandBrake optional.

Docker image (latest) includes ffmpeg and openssh-client. For HandBrake support use the :handbrake tag.

# Default (ffmpeg)
docker run -d -p 8603:8603 \
  -v ~/.config/media-postprocessor:/root/.config/media-postprocessor:ro \
  -v /path/to/media:/media \
  pyr0ball/discarr:latest

# HandBrake variant
docker run -d -p 8603:8603 \
  -v ~/.config/media-postprocessor:/root/.config/media-postprocessor:ro \
  -v /path/to/media:/media \
  pyr0ball/discarr:handbrake

Also optional: qBittorrent hook so disc rips downloaded as torrents auto-queue; Tdarr notify after encode.

Forgejo: https://git.opensourcesolarpunk.com/Circuit-Forge/discarr GitHub: https://github.com/pyr0ball/discarr

I built a web UI to bridge disc rips into the arr stack: Discarr [GPL-3.0]https://git.opensourcesolarpunk.com/Circuit-Forge/discarrOpen linkView original on reddthat.com
selfhosted·Selfhostedbypyr0ball

Discarr: disc rip → Sonarr/Radarr pipeline, no npm deps [GPL-3.0]

MakeMKV gives you a pile of VOB files. Sonarr wants a clean named MKV in the right folder. The gap between those two is always a manual dance. Figure out which season it is, rename it, drop it in the right place, trigger a rescan.

Discarr fills that gap: it's a small Node.js web UI (no npm packages, pure built-ins) that handles the VIDEO_TS / BDMV / ISO → arr import chain.

What it does:

  • Scans disc structure automatically (VIDEO_TS, BDMV, multi-disc, ISO)
  • Reads IFO chapter data to split multi-episode DVD discs correctly
  • Browser UI to map disc titles to the right Sonarr episodes or Radarr movies
  • Queues HEVC encodes via ffmpeg or HandBrake (locally or over SSH to a remote box)
  • Notifies Sonarr/Radarr via custom script hooks on import/delete/completion
  • Optional: qBittorrent hook triggers a scan on torrent completion; Tdarr ping after encode
  • Persistent job queue. restarts resume automatically

Requirements: Node.js 18+, ffmpeg + ffprobe. HandBrake optional. Docker image bundles both plus openssh-client.

Still early, issues and PRs welcome.

Forgejo (primary): https://git.opensourcesolarpunk.com/Circuit-Forge/discarr GitHub (mirror): https://github.com/pyr0ball/discarr

Discarr: disc rip → Sonarr/Radarr pipeline, no npm deps [GPL-3.0]https://git.opensourcesolarpunk.com/Circuit-Forge/discarrOpen linkView original on reddthat.com

You reached the end