Automates the tedious manual work around MakeMKV: figuring out what to rip, which MKV files are actually what, and organizing everything into Plex-compatible folder structures.
Project description
riplex
Automates the tedious manual work around MakeMKV: figuring out what to rip, which MKV files are actually what, and organizing everything into Plex-compatible folder structures.
Why?
MakeMKV is great at one thing: reading a disc and dumping raw MKV files. But that's where its job ends and yours begins.
You're left with a pile of generically-named files (title_t00.mkv, title_t01.mkv, ...) and no idea which is the main film, which are featurettes, which are duplicates, and which is the play-all compilation you didn't need. For a multi-disc TV series, you're looking at hours of manual effort: reading disc cases, Googling runtimes, renaming files one by one, and building the exact folder hierarchy Plex demands.
We identified the best sources of disc metadata (TMDb for canonical titles and episode info, dvdcompare.net for per-disc content breakdowns) and automated the entire pipeline. riplex pulls that data, figures out what's on every disc in a release, tells you exactly which MakeMKV titles to rip (and which to skip), then matches, renames, deduplicates, splits, and organizes everything into the correct Plex structure automatically.
What it does
| Command | What it does |
|---|---|
orchestrate |
Full pipeline: insert a disc, riplex handles detection, metadata lookup, ripping, and organizing. Multi-disc with swap prompts. |
rip |
Single-disc rip with smart title selection (skips play-alls, duplicates, junk). |
organize |
Scan existing MKV rips, deduplicate, match to metadata by runtime, move into Plex layout. |
lookup |
Preview disc contents and recommended rip strategy before touching MakeMKV. |
Quick Start
Install
pip install -e ".[dev]"
Configure
Run the interactive setup wizard:
riplex setup
This walks you through creating your config file (TMDb API key, output paths) and checks that required tools are on PATH. It also runs automatically the first time you use any command.
Get a free TMDb API key at https://www.themoviedb.org/settings/api.
Rip a disc (interactive)
Insert a disc and run:
riplex orchestrate --execute
riplex auto-detects the title from the volume label, looks up disc metadata, shows you what's on each disc, lets you choose which to rip, and organizes everything into Plex folders when done.
Rip a disc (unattended)
riplex orchestrate --execute --auto
Skips all prompts, uses best-guess defaults. Good for scripted or scheduled runs.
Organize existing rips
Already ripped with MakeMKV manually? Point organize at the folder:
riplex organize path/to/rips/Oppenheimer --execute
Requirements
- Python 3.11+
- TMDb API key (free)
- MakeMKV with
makemkvconon PATH - ffmpeg (
ffprobe) for metadata extraction - MKVToolNix (
mkvmerge,mkvpropedit) for chapter splitting and tagging
Related Projects
- dvdcompare-scraper: Scrapes per-disc content metadata from dvdcompare.net (featurettes, interviews, deleted scenes, runtimes). Required dependency that powers riplex's disc content lookup. Contributions welcome.
Documentation
Full documentation is in the docs/ folder:
- Getting Started: installation, configuration
- User Guide: workflows, command-by-command guides
- CLI Reference: all options for all commands
- Architecture: design, data flow, project structure
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file riplex-0.1.3.tar.gz.
File metadata
- Download URL: riplex-0.1.3.tar.gz
- Upload date:
- Size: 135.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bccaea9379aa598d2e9956ec29ddad23eef3ac8a88d45d986a7eec0e47cb2a2f
|
|
| MD5 |
4aec27537d36a727f46ace4957ee9065
|
|
| BLAKE2b-256 |
3191f722553cd000e7b7741f85a670f3cf7b076b756a653d86f4e2fb82b1523b
|
Provenance
The following attestation bundles were made for riplex-0.1.3.tar.gz:
Publisher:
publish.yml on AnyCredit5518/riplex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
riplex-0.1.3.tar.gz -
Subject digest:
bccaea9379aa598d2e9956ec29ddad23eef3ac8a88d45d986a7eec0e47cb2a2f - Sigstore transparency entry: 1415042848
- Sigstore integration time:
-
Permalink:
AnyCredit5518/riplex@1a77faed6091965c4c098a0e83bb32e4ed6d1d92 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AnyCredit5518
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1a77faed6091965c4c098a0e83bb32e4ed6d1d92 -
Trigger Event:
push
-
Statement type:
File details
Details for the file riplex-0.1.3-py3-none-any.whl.
File metadata
- Download URL: riplex-0.1.3-py3-none-any.whl
- Upload date:
- Size: 75.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b90ec4a804bd549906ec5ef570e38ad7d1fae850317250c8d32acfd9a421ad0b
|
|
| MD5 |
8b102a0d5de193331528889bf8694865
|
|
| BLAKE2b-256 |
b7aa2299f4b042c0d8f2fddca728b297cb00f055c5c68e1ae169d91b6f7e28b5
|
Provenance
The following attestation bundles were made for riplex-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on AnyCredit5518/riplex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
riplex-0.1.3-py3-none-any.whl -
Subject digest:
b90ec4a804bd549906ec5ef570e38ad7d1fae850317250c8d32acfd9a421ad0b - Sigstore transparency entry: 1415042966
- Sigstore integration time:
-
Permalink:
AnyCredit5518/riplex@1a77faed6091965c4c098a0e83bb32e4ed6d1d92 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AnyCredit5518
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1a77faed6091965c4c098a0e83bb32e4ed6d1d92 -
Trigger Event:
push
-
Statement type: