Public KeyDB Disc Submissions

Please post here for issues related to UHD discs
Warbington
Posts: 23
Joined: Sat Jul 12, 2025 12:33 am

Synthetic dumps

Post by Warbington »

Disc ID : 0x99737BE3CAC68007CEBF4D5177779D5EC50A2B7D
Title : Trolls

https://drive.google.com/drive/folders/ ... sp=sharing

Disc ID : 0x49960192AEF8235259D4690E1484FC6238B7326A
Title : Wonka

https://drive.google.com/drive/folders/ ... sp=sharing

Disc ID : 0x056ACEDB415482A1D1A75D7B69E51BF9FE31EA25
Title : Billy Lynn's Long Halftime Walk – 4K Ultra HD

https://drive.google.com/drive/folders/ ... sp=sharing
mediumwave
Posts: 4
Joined: Wed Dec 10, 2025 8:43 am

Re: Public KeyDB Disc Submissions

Post by mediumwave »

Name: Tom Petty & The Heartbreakers - Origins 1971-1978

Disc type: BD
Disc ID: 0xC281D0F98CFDE565BFB624043DC3BEF130BD5016
Disc dump filename: MKB_v82_TOMPETTY_ORIGINS_A91E
Drive: PIONEER BDR-US04
Drive firmware: 1.14
LibreDrive status: Enabled
Did you sync the public keydb within the last 15 minutes? Yes
Have you verified that all submission links are accessible in incognito/private browsing? Yes
Is your MKB_RO.inf file size at least 2MB? 1MB (Standard Blu Ray)
MKB_RO.inf link: https://drive.google.com/file/d/1nkGZ3b ... drive_link
Disc dump link: https://drive.google.com/file/d/1NlVWeC ... drive_link
keydb_helper
Posts: 1101
Joined: Fri Sep 06, 2024 4:47 pm

Re: Public KeyDB Disc Submissions

Post by keydb_helper »

Thanks to everyone who followed the template and provided new disc dump files. If any valid submissions were overlooked, please feel free to bump your post.

The following BD and UHD discs have been added to the public keydb:

Code: Select all

Billy Lynn's Long Halftime Walk (Disc ID 0x056ACEDB415482A1D1A75D7B69E51BF9FE31EA25)
Ip Man 2 (Disc ID 0x88CA5DCE85E16F72D65FA571DBCA908686BCBE81)
MKB20_v72_CRASH_-_4K_UHD_7B7D
MKB20_v82_Dracula_-_UHD_Disc_2_BA2E
MKB20_v82_The_Odyssey_ED2C
MKB_v82_TOMPETTY_ORIGINS_A91E
Shoot the Piano Player (Disc ID 0x5BE891E8D887E1A472D196E03A15E6889DE9F45C)
Trolls (Disc ID 0x99737BE3CAC68007CEBF4D5177779D5EC50A2B7D)
Wonka (Disc ID 0x49960192AEF8235259D4690E1484FC6238B7326A)
Warbington wrote: Sat Nov 14, 2026 8:13 pm Disc ID : 0x99737BE3CAC68007CEBF4D5177779D5EC50A2B7D
Title : Trolls
...
Disc ID : 0x49960192AEF8235259D4690E1484FC6238B7326A
Title : Wonka
...
Disc ID : 0x056ACEDB415482A1D1A75D7B69E51BF9FE31EA25
Title : Billy Lynn's Long Halftime Walk – 4K Ultra HD
Great work Warbington. Thanks again for taking the time to create those synthetic disc dump files.
timjtech wrote: Sat Nov 14, 2026 3:24 am KPOP DEMON HUNTERS

Disc type: UHD
Disc ID: 26e488ca591d755db8cd6ea88a0183723a42c6bd
Disc dump filename: MKB20_v82_KPOP_DEMON_HUNTERS_2A4A
...
Have you verified that all submission links are accessible in incognito/private browsing? Yes
Hey timjtech, thanks for following the submission template but your links are not publicly accessible. Feel free to update the links whenever you get a chance and post an update to this thread.
Digital moe wrote: Sat Nov 14, 2026 11:14 am Zombieland (UK Disc) - I have used KeyDB Assist and it tells me media Key not found

Disc type:UHD
Disc ID: 0xA111C698554C6AF960C84F55B9D6615F1BBE6327
Disc dump filename: MKB21_v70_Zombieland_0C05
Hey Digital moe, thanks for the submission but the public keydb doesn't really support AACS 2.1 at this stage.
Public KeyDB Disc Submissions
  • The MKB_RO.inf file from the original disc is required
KeyDB Download
  • Place the extracted keydb.cfg file in the same directory as your disc dump files
KeyDB Priority Disc List
KeyDB Lower Priority Disc List
timjtech
Posts: 11
Joined: Tue Oct 02, 2018 5:28 pm

Re: Public KeyDB Disc Submissions

Post by timjtech »

My apologies!

Disc type: UHD
Disc ID: 26e488ca591d755db8cd6ea88a0183723a42c6bd
Disc dump filename: MKB20_v82_KPOP_DEMON_HUNTERS_2A4A
Drive: BW-16D1HT
Drive firmware: 3.10
LibreDrive status: Enabled
Did you sync the public keydb within the last 15 minutes? Yes
Have you verified that all submission links are accessible in incognito/private browsing? Yes
Is your MKB_RO.inf file size at least 2MB? Yes

Disc Dump: https://drive.google.com/file/d/1GPspZg ... sp=sharing
MKB_RO: https://drive.google.com/file/d/1DeJv-N ... sp=sharing
keydb_helper
Posts: 1101
Joined: Fri Sep 06, 2024 4:47 pm

Re: Public KeyDB Disc Submissions

Post by keydb_helper »

timjtech wrote: Sun Nov 15, 2026 1:56 am My apologies!

Disc type: UHD
Disc ID: 26e488ca591d755db8cd6ea88a0183723a42c6bd
Disc dump filename: MKB20_v82_KPOP_DEMON_HUNTERS_2A4A
Your disc was added to the public keydb on November 9.
Public KeyDB Disc Submissions
  • The MKB_RO.inf file from the original disc is required
KeyDB Download
  • Place the extracted keydb.cfg file in the same directory as your disc dump files
KeyDB Priority Disc List
KeyDB Lower Priority Disc List
timjtech
Posts: 11
Joined: Tue Oct 02, 2018 5:28 pm

Re: Public KeyDB Disc Submissions

Post by timjtech »

Sorry for wasting your time; I had some permissions issues with the downloaded keydb.cfg and didn't realize it. Thank you for your hard work :)
loucipher
Posts: 42
Joined: Tue Nov 29, 2022 12:45 am

Re: Public KeyDB Disc Submissions

Post by loucipher »

Disc type: UHD
Disc ID: a0e2a8680427a398c105a573db0151f6871bb37a
Disc dump filename: MKB20_v76_Elf_1B09.tgz
Drive: Pioneer BDR-S13J-X
Drive firmware: 1.03/ID72
LibreDrive status: Enabled
Did you sync the public keydb within the last 15 minutes? Yes
Have you verified that all submission links are accessible in incognito/private browsing? Yes
MKB_RO.inf link: https://drive.proton.me/urls/AMEAXWCFBG#CFctaBiGzndP
Disc dump link: https://drive.proton.me/urls/TEZJGP3DSC#cIYkmr1u3A3J
loucipher
Posts: 42
Joined: Tue Nov 29, 2022 12:45 am

Re: Public KeyDB Disc Submissions

Post by loucipher »

Disc type: UHD
Disc ID: fb0c0d097caaceefc049e8d44485821e4b3c6176
Disc dump filename: MKB20_v76_National_Lampoon's_Christmas_Vacation_FD17.tgz
Drive: Pioneer BDR-S13J-X
Drive firmware: 1.03/ID72
LibreDrive status: Enabled
Did you sync the public keydb within the last 15 minutes? Yes
Have you verified that all submission links are accessible in incognito/private browsing? Yes
MKB_RO.inf link: https://drive.proton.me/urls/RFGFGF5YX4#KYUYhBhVo31M
Disc dump link: https://drive.proton.me/urls/V1M1KSTNT4#Xqy39TF4GmU6
loucipher
Posts: 42
Joined: Tue Nov 29, 2022 12:45 am

Re: Public KeyDB Disc Submissions

Post by loucipher »

Disc type: UHD
Disc ID: bfedb5b8876ea14b29acf3df687f4e6350353715
Disc dump filename: MKB20_v76_The_Polar_Express_33FB.tgz
Drive: Pioneer BDR-S13J-X
Drive firmware: 1.03/ID72
LibreDrive status: Enabled
Did you sync the public keydb within the last 15 minutes? Yes
Have you verified that all submission links are accessible in incognito/private browsing? Yes
MKB_RO.inf link: https://drive.proton.me/urls/GYRM5H64DR#bdgdMFECRX7z
Disc dump link: https://drive.proton.me/urls/YVBRY59454#6cjtpq7b92zt
loucipher
Posts: 42
Joined: Tue Nov 29, 2022 12:45 am

Re: Public KeyDB Disc Submissions

Post by loucipher »

I just noticed the whole thing about synthetic dumps. I think I've got a bunch of those, so I'll be going through my collection and working my way down the list as time permits.
Warbington
Posts: 23
Joined: Sat Jul 12, 2025 12:33 am

Synthetic dump

Post by Warbington »

Disc ID : 0xB6DBEE09F24B58591B49C9A3A65F122BB4A4F14D
Volume : Sweeney Todd (Remastered)

https://drive.google.com/drive/folders/ ... sp=sharing
SamuriHL
Posts: 2821
Joined: Mon Jun 14, 2010 5:32 pm

Re: Public KeyDB Disc Submissions

Post by SamuriHL »

keydb_helper wrote: Fri Oct 30, 2026 11:53 am If anyone has any disc from this list of titles, it would be greatly appreciated if you could follow these steps and provide the resultant 'synthetic' disc dump file:
1. Use MakeMKV to start creating an encrypted folder backup of a disc
2. Stop the backup once the discatt.dat/discattd.dat file has been created and at least one M2TS file has been copied
(A very small M2TS file is sufficient for this purpose)
3. Make a new folder for your synthetic disc dump
4. Copy the discatt.dat/discattd.dat file and the smallest M2TS file out of the (incomplete) encrypted backup folder into your synthetic disc dump folder
5. Copy the entire AACS directory from your disc into your synthetic disc dump folder
6. Zip up the synthetic disc dump folder, upload it to a file host and post a link here
I had AI write a script for both Windows (powershell) and Linux (bash) to create the synthetic disc dump. I've not tested this but posting in case anyone finds it useful.

Powershell (synthetic-dump.ps1)

Code: Select all

<#
.SYNOPSIS
  Builds a "synthetic disc dump": discatt.dat/discattd.dat and the smallest complete
  M2TS from a partial MakeMKV *encrypted* backup, plus the disc's AACS folder, zipped.

.EXAMPLE
  .\synthetic-dump.ps1 -Drive E:
  .\synthetic-dump.ps1 -Drive E: -OutDir D:\dumps -KeepBackup
#>
param(
    [Parameter(Mandatory)][string]$Drive,            # optical drive letter, e.g. E:
    [string]$OutDir = (Join-Path $PWD 'synthetic'),
    [string]$MakeMkvCon,                              # path to makemkvcon64.exe (auto-detected)
    [int]$TimeoutMinutes = 30,
    [switch]$KeepBackup                               # keep the partial encrypted backup
)
$ErrorActionPreference = 'Stop'

$Drive = $Drive.TrimEnd('\').ToUpper()
if ($Drive -notmatch '^[A-Z]:$') { throw "Drive must look like 'E:'" }
$discRoot   = "$Drive\"
$discAacs   = Join-Path $discRoot 'AACS'
$discStream = Join-Path $discRoot 'BDMV\STREAM'
if (-not (Test-Path $discAacs))   { throw "No AACS folder on $Drive (no disc, or not an AACS disc)" }
if (-not (Test-Path $discStream)) { throw "No BDMV\STREAM folder on $Drive" }

if (-not $MakeMkvCon) {
    $MakeMkvCon = @(
        "${env:ProgramFiles(x86)}\MakeMKV\makemkvcon64.exe",
        "$env:ProgramFiles\MakeMKV\makemkvcon64.exe",
        "${env:ProgramFiles(x86)}\MakeMKV\makemkvcon.exe"
    ) | Where-Object { $_ -and (Test-Path $_) } | Select-Object -First 1
}
if (-not $MakeMkvCon) { throw "makemkvcon not found; pass -MakeMkvCon <path>" }

# Map the drive letter to MakeMKV's disc index. DRV lines end in the device path:
#   DRV:0,2,999,12,"drive name","disc name","E:"
$idx = $null
foreach ($line in (& $MakeMkvCon -r --cache=1 info disc:9999 2>$null)) {
    if ($line -match '^DRV:(\d+),.*,"([^"]*)"\s*$' -and $Matches[2].TrimEnd('\').ToUpper() -eq $Drive) {
        $idx = $Matches[1]; break
    }
}
if ($null -eq $idx) { throw "MakeMKV does not list a drive at $Drive" }

$stamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$work  = Join-Path $OutDir "backup-$stamp"
$dump  = Join-Path $OutDir "synthetic-$stamp"
$log   = Join-Path $OutDir "makemkv-$stamp.log"
New-Item -ItemType Directory -Force -Path $work, $dump | Out-Null

Write-Host "Starting encrypted backup of disc:$idx ($Drive) into $work"
$proc = Start-Process -FilePath $MakeMkvCon -NoNewWindow -PassThru `
    -ArgumentList @('-r', 'backup', "disc:$idx", "`"$work`"") `
    -RedirectStandardOutput $log

$deadline = (Get-Date).AddMinutes($TimeoutMinutes)
$checked  = @{}
$attr = $null; $m2ts = $null
while ($true) {
    $attr = Get-ChildItem $work -Recurse -File -Include 'discatt.dat', 'discattd.dat' -ErrorAction SilentlyContinue |
            Select-Object -First 1
    if ($attr) {
        # Smallest first; a candidate counts only when it is byte-identical to the disc file.
        $cands = Get-ChildItem $work -Recurse -File -Filter '*.m2ts' -ErrorAction SilentlyContinue |
                 Where-Object Length -gt 0 | Sort-Object Length
        foreach ($f in $cands) {
            $src = Join-Path $discStream $f.Name
            if (-not (Test-Path $src) -or (Get-Item $src).Length -ne $f.Length) { continue }
            $key = "$($f.FullName)|$($f.Length)|$($f.LastWriteTimeUtc.Ticks)"
            if ($checked.ContainsKey($key)) { continue }
            $checked[$key] = $true
            if ((Get-FileHash $f.FullName).Hash -eq (Get-FileHash $src).Hash) { $m2ts = $f; break }
        }
    }
    if ($m2ts) { break }
    if ($proc.HasExited) { break }
    if ((Get-Date) -gt $deadline) { Write-Warning "Timed out after $TimeoutMinutes min"; break }
    Start-Sleep -Seconds 2
}

if (-not $proc.HasExited) {
    Write-Host "Stopping MakeMKV"
    Stop-Process -Id $proc.Id -Force
    $proc.WaitForExit(15000) | Out-Null
}
if (-not $attr) { throw "No discatt.dat/discattd.dat appeared (see $log)" }
if (-not $m2ts) { throw "No complete M2TS was copied (see $log)" }

Copy-Item $attr.FullName -Destination $dump
Copy-Item $m2ts.FullName -Destination $dump
Copy-Item $discAacs -Destination (Join-Path $dump 'AACS') -Recurse
Get-ChildItem $dump -Recurse -File | ForEach-Object { $_.IsReadOnly = $false }

$zip = "$dump.zip"
Compress-Archive -Path $dump -DestinationPath $zip -Force

if (-not $KeepBackup) { Remove-Item $work -Recurse -Force }

Write-Host ""
Write-Host "Attribute file : $($attr.Name)"
Write-Host "M2TS           : $($m2ts.Name) ($($m2ts.Length) bytes)"
Write-Host "Folder         : $dump"
Write-Host "Zip            : $zip"
Bash (synthetic-dump.sh)

Code: Select all

#!/usr/bin/env bash
# Builds a "synthetic disc dump": discatt.dat/discattd.dat and the smallest complete
# M2TS from a partial MakeMKV *encrypted* backup, plus the disc's AACS folder, zipped.
#
# Usage:  ./synthetic-dump.sh /dev/sr0 [outdir]
# Env:    MAKEMKVCON=/path/to/makemkvcon  TIMEOUT_MIN=30  KEEP_BACKUP=1
# Linux (GNU find/stat). The disc must be mounted.
set -euo pipefail

dev="${1:?usage: $0 /dev/sr0 [outdir]}"
out="${2:-$PWD/synthetic}"
mkmkv="${MAKEMKVCON:-makemkvcon}"
timeout_min="${TIMEOUT_MIN:-30}"

command -v "$mkmkv" >/dev/null || { echo "makemkvcon not found (set MAKEMKVCON)" >&2; exit 1; }

mnt="$(findmnt -n -o TARGET --source "$dev" 2>/dev/null | head -n1 || true)"
[ -n "$mnt" ] || { echo "$dev is not mounted; mount the disc first" >&2; exit 1; }

aacs="$(find "$mnt" -maxdepth 1 -type d -iname AACS -print -quit)"
bdmv="$(find "$mnt" -maxdepth 1 -type d -iname BDMV -print -quit)"
stream="$( [ -n "$bdmv" ] && find "$bdmv" -maxdepth 1 -type d -iname STREAM -print -quit || true)"
[ -n "$aacs" ]   || { echo "No AACS folder under $mnt" >&2; exit 1; }
[ -n "$stream" ] || { echo "No BDMV/STREAM folder under $mnt" >&2; exit 1; }

# Map the device to MakeMKV's disc index. DRV lines end in the device path:
#   DRV:0,2,999,12,"drive name","disc name","/dev/sr0"
idx="$("$mkmkv" -r --cache=1 info disc:9999 2>/dev/null |
       awk -F, -v d="$dev" '/^DRV:/ { p=$NF; gsub(/"|\r/, "", p);
                                     if (p == d) { sub(/^DRV:/, "", $1); print $1; exit } }')"
[ -n "$idx" ] || { echo "MakeMKV does not list a drive at $dev" >&2; exit 1; }

stamp="$(date +%Y%m%d-%H%M%S)"
work="$out/backup-$stamp"
dump="$out/synthetic-$stamp"
log="$out/makemkv-$stamp.log"
mkdir -p "$work" "$dump"

echo "Starting encrypted backup of disc:$idx ($dev) into $work"
"$mkmkv" -r backup "disc:$idx" "$work" >"$log" 2>&1 &
pid=$!
trap 'kill "$pid" 2>/dev/null || true' EXIT

deadline=$(( $(date +%s) + timeout_min * 60 ))
declare -A checked=()
attr=""; m2ts=""
while :; do
    attr="$(find "$work" -type f \( -iname discatt.dat -o -iname discattd.dat \) -print -quit 2>/dev/null || true)"
    if [ -n "$attr" ]; then
        # Smallest first; a candidate counts only when it is byte-identical to the disc file.
        while IFS=$'\t' read -r size f; do
            src="$(find "$stream" -maxdepth 1 -iname "$(basename "$f")" -print -quit)"
            [ -n "$src" ] || continue
            [ "$(stat -c %s "$src")" = "$size" ] || continue
            key="$f:$size:$(stat -c %Y "$f")"
            [ -z "${checked[$key]:-}" ] || continue
            checked[$key]=1
            if cmp -s "$f" "$src"; then m2ts="$f"; break; fi
        done < <(find "$work" -type f -iname '*.m2ts' -size +0 -printf '%s\t%p\n' 2>/dev/null | sort -n)
    fi
    [ -z "$m2ts" ] || break
    kill -0 "$pid" 2>/dev/null || break
    [ "$(date +%s)" -lt "$deadline" ] || { echo "Timed out after $timeout_min min" >&2; break; }
    sleep 2
done

if kill -0 "$pid" 2>/dev/null; then
    echo "Stopping MakeMKV"
    kill "$pid" 2>/dev/null || true
fi
wait "$pid" 2>/dev/null || true
trap - EXIT

[ -n "$attr" ] || { echo "No discatt.dat/discattd.dat appeared (see $log)" >&2; exit 1; }
[ -n "$m2ts" ] || { echo "No complete M2TS was copied (see $log)" >&2; exit 1; }

cp "$attr" "$m2ts" "$dump/"
cp -r "$aacs" "$dump/AACS"
chmod -R u+w "$dump"

name="$(basename "$dump")"
if command -v zip >/dev/null; then
    (cd "$out" && zip -qr "$name.zip" "$name")
else
    (cd "$out" && python3 -m zipfile -c "$name.zip" "$name")
fi

[ "${KEEP_BACKUP:-0}" = 1 ] || rm -rf "$work"

echo
echo "Attribute file : $(basename "$attr")"
echo "M2TS           : $(basename "$m2ts") ($(stat -c %s "$m2ts" 2>/dev/null || stat -c %s "$dump/$(basename "$m2ts")") bytes)"
echo "Folder         : $dump"
echo "Zip            : $out/$name.zip"
Hope this helps.