KeyDBCfg (Key Database Configuration) is a utility developed by the community as part of the KEYDB project (often hosted on platforms like GitHub under keydbcfg). It is not a ripper itself; it is a database manager.
What it does:
Why you need it: When MakeMKV fails to find a key for a specific 4K disc, you can point it to an external KEYDB.cfg file. keydbcfg helps you find, merge, or update that file.
MakeMKV does not read KEYDB.cfg directly by default. It relies on a specific integration file. keydbcfg makemkv
Inside the .MakeMKV folder, you need to create a new text file named: keys_hashed.txt
Why keys_hashed.txt? MakeMKV expects a hashed key format. The raw KEYDB.cfg uses a different standard (VUK). However, modern ripping utilities (like FindVUK or DVDFab) include a "Hasher" tool. Alternatively, you can rename the file, but it is safer to copy the contents:
If you are using the desktop application: KeyDBCfg (Key Database Configuration) is a utility developed
Even with the files in place, things go wrong. Here is the troubleshooting flowchart.
import redis import subprocess import osr = redis.Redis(host='localhost', port=6379, decode_responses=True)
def enqueue_disc(disc_path): r.rpush('makemkv:queue', disc_path) Why you need it: When MakeMKV fails to
def worker(): while True: disc = r.blpop('makemkv:queue', timeout=0)[1] # Set status r.hset(f'makemkv:job:disc', 'status', 'running') try: subprocess.run([ 'makemkvcon', 'mkv', f'dev:disc', 'all', '/output', '--minlength=600' ], check=True) r.hset(f'makemkv:job:disc', 'status', 'done') except: r.hset(f'makemkv:job:disc', 'status', 'failed') finally: r.incr('makemkv:processed_count')
You can trigger workers on multiple machines all pointing to same KeyDB.