A minimal, stable Blu-ray/DVD ripper written in Go. Wraps makemkvcon, ffprobe, and rsync.
Inspired by Automatic Ripping Machine (ARM). SimpleRip takes a different architectural approach: it never modifies the video stream, delegates all ripping to makemkvcon, and delegates all transcoding to Tdarr. Its own logic is limited to disc classification, duplicate detection, and audio quality scoring for keeper selection.
- Detects disc insertion via udev / polling
/dev/sr* - Scans titles with
makemkvcon -r info(no rip yet) - Classifies titles — TV show, movie, double feature, extras, ambiguous
- Rips via
makemkvcon mkv— output is the final MKV, no remux - Inspects finished MKVs via
ffprobefor quality scoring and notifications - Delivers to NAS via
rsync - Notifies via Discord webhook only after rsync completes and files are verified
Transcoding is handled separately by Tdarr. SimpleRip never touches the video stream.
| Tool | Purpose |
|---|---|
makemkvcon |
Ripping Blu-ray / DVD |
ffprobe (part of ffmpeg) |
MKV metadata inspection |
rsync |
NAS delivery |
| Go 1.22+ | Building from source |
git clone https://github.com/8bitreid/simplerip.git
cd simplerip
go build -o simplerip ./cmd/simpleripexport MAKEMKV_KEY="your-license-key-here"
docker compose up -dOptical drives are passed through as devices (/dev/sr0, /dev/sr1). Set MAKEMKV_KEY for Blu-ray ripping (recommended) — see Configuration below.
Copy the example config and fill in your paths and API keys:
cp config.yaml.example config/config.yaml
# Edit config/config.yaml with your TMDB/OMDb keysSet the MAKEMKV_KEY environment variable:
export MAKEMKV_KEY="your-license-key-here"For Docker, this is passed through in compose.yaml. For systemd, add it to your service file. Get a free beta key at https://www.makemkv.com/forum/viewtopic.php?t=1053
output:
staging_dir: /staging # fast local storage
nas_path: /output # NAS mount point
metadata:
tmdb_api_key: "" # https://www.themoviedb.org/settings/api
omdb_api_key: "" # https://www.omdbapi.com/apikey.aspx
notification:
webhook_url: "" # n8n webhook for Discord alerts
callback_port: 8090 # port for n8n to POST responses backSee config.yaml.example for all options. The file config/config.yaml is gitignored.
Start the disc-ripping daemon. Watches configured devices and rips automatically.
simplerip ripIdentify, deduplicate, and rename MKVs to Title (Year) format. Useful for organizing multi-playlist Blu-ray artifacts (where makemkvcon produces several near-identical MKVs from the same disc).
simplerip organize -dir /path/to/movie/dir [flags]Flags:
| Flag | Default | Description |
|---|---|---|
-dir |
required | Directory containing MKV files to organize |
-query |
derived from dir name | Override the TMDB search query |
-edition |
"" |
Label alternate cuts (e.g. "Director's Cut") |
-dry-run |
false | Show what would happen without moving files |
-yes |
false | Skip confirmation prompts |
What organize does:
- Flatten subdirs — moves MKVs from any subdirectory (extras, bonus, etc.) up into the parent, then removes the now-empty subdirectory
- Deduplicate — groups files by duration (±30 s = same version), scores each group by audio quality, keeps the best, moves the rest to
_duplicates/ - TMDB lookup — searches for the movie title, with progressive query retry (drops the last word until results are found)
- OMDb enrichment — cross-references runtime from both TMDB and OMDb for edition detection
- Rename — the file closest to the theatrical runtime gets
Title (Year)/Title (Year).mkv; others getTitle (Year) - Alternate (Xmin).mkv
Example:
simplerip organize -dir "/mnt/nas/Dev Movies/Pitch-Black (2000)"
simplerip organize -dir "/mnt/nas/Dev Movies/Pitch-Black (2000)" -edition "Director's Cut" -yes
simplerip organize -dir "/mnt/nas/Dev Movies/Pitch-Black (2000)" -dry-runWhen duplicates are found, simplerip picks the keeper by audio quality — not file size. A file with no English audio is disqualified entirely.
| Criterion | Weight |
|---|---|
| TrueHD / Atmos | 100 |
| DTS-HD Master Audio | 90 |
| FLAC / PCM (lossless) | 85 |
| DTS-HD HRA | 80 |
| DTS core | 60 |
| Dolby Digital Plus (EAC3) | 50 |
| Dolby Digital (AC3) | 40 |
| AAC | 30 |
| MP3 | 20 |
| 7.1 channels | +40 |
| 6.1 channels | +35 |
| 5.1 channels | +30 |
| Stereo | +10 |
| English subtitles present | +10 |
| File size (tiebreaker, capped) | 0–5 |
The full breakdown is shown in the duplicate analysis report for every [KEEP] and [DUPE] entry.
SimpleRip POSTs JSON payloads to an n8n webhook when user input is needed (extras, double features, ambiguous discs). n8n formats it as a Discord message with action buttons. The user responds in Discord, n8n POSTs the response back to SimpleRip's callback server (:8090), and the rip continues.
If no response is received within response_timeout_minutes, extras are skipped and the main feature is delivered.
| Condition | Action |
|---|---|
| 3+ titles within 60 s of each other | TV mode — rip all automatically |
| 2 titles, same duration | Double feature — ask via Discord |
| 1 long title (>40 min) + shorter others | Rip main immediately, ask about extras |
| Ambiguous | Ask via Discord |
| Under 2 minutes | Silently ignored (junk) |
cmd/simplerip/main.go daemon entrypoint + organize subcommand
internal/disc/ disc type detection
internal/ripper/ makemkvcon wrapper + title classification
internal/inspect/ ffprobe wrapper + quality scoring
internal/metadata/ TMDB + OMDb clients, edition detection
internal/output/ staging, rsync delivery, deduplication
internal/notify/ Discord webhook payloads
internal/server/ HTTP callback server for n8n responses
internal/config/ config.yaml loading
MakeMKV: The Docker image builds and bundles makemkvcon from source. By building or pulling this image you are accepting the MakeMKV End-User License Agreement, available at makemkv.com. MakeMKV is free to use while in beta; a license key is required for Blu-ray ripping. SimpleRip does not distribute MakeMKV binaries directly.
- Automatic Ripping Machine (ARM) — the original inspiration for automated disc ripping on Linux. ARM is a community project with a lot of history; SimpleRip simply takes a different design approach.
- MakeMKV — the core ripping engine. MakeMKV is a commercial product; a valid license key is required for Blu-ray ripping. SimpleRip does not bundle or redistribute MakeMKV binaries.
- This product uses the TMDB API but is not endorsed or certified by TMDB.
- Movie and series data provided in part by OMDb API.
MIT