John Wick 1 - 3 Blu-ray — BD-J / MPLS Obfuscation Scan Results
I ran my disc-analysis pipeline against the three John Wick Blu-rays to compare how each release handles BD-J playlist obfuscation. Posting the results in case they're useful to anyone tracking how Lionsgate's protection has evolved across the trilogy. The pipeline does a runtime cut verification (ProcMon-traced PI sequence vs. MPLS expected sequence), a native MPLS scan, BD-J entry-point analysis, and a final decision layer.
All three discs are confirmed BD-J controlled. The obfuscation patterns are very different between them.
[hr]
1. John Wick (2014)
Disc shape: CONFIRMED_BDJ_CONTROLLED_OBFUSCATED_SINGLE_FEATURE
Disc type: ALIAS CLUSTER — extreme decoy/sibling pool
Native MPLS scan
Code: Select all
Playlists found : 340
Feature candidates : 301
Obfuscation patterns : 25
Sibling cut groups : 1 (252 playlists, all 01:40:12.900)
The disc throws
252 sibling playlists at the exact same duration (01:40:12.900) as the real feature. Plus a 6-hour loop playlist (00003.MPLS, 501 items) and 24 short decoy playlists (5–53 seconds). One sibling differs by a single second (00589.MPLS at 01:41:12.900) — a clear misdirection.
Runtime verification
The selected feature was 00006.MPLS at 01:40:12.899. ProcMon trace verified the PI sequence:
Code: Select all
RESULT : ORDER VERIFIED
Tier : STRONG
Full coverage : 80.0%
Observed prec. : 94.1%
LCS match : 16/20
Final decision
Code: Select all
PRIMARY: 00006.MPLS — MAIN FEATURE — 01:40:12.899
Output : John Wick (2014) 1080p BluRay REMUX.mkv
Aliases collapsed into 00006.MPLS: 251 sibling playlists ignored
Rejected as decoys: 25 short/loop playlists
BD-J entry points : 03001, 00015, 00001, 00003, 00002
[hr]
2. John Wick: Chapter 2 (2017)
Disc shape: CONFIRMED_BDJ_CONTROLLED_SINGLE_FEATURE
Disc type: BD-J NARROW
Native MPLS scan
Code: Select all
Playlists found : 452
Feature candidates : 1
Obfuscation patterns : 427
Sibling cut groups : 0
This one's the opposite shape from JW1. Only
1 real feature candidate, but
427 obfuscation playlists. There's also a 6-hour loop (00003.MPLS, 501 items) and a flock of single-clip decoys. The interesting wrinkle: there's a 13-second playlist (00006.MPLS) whose internal PI sequence overlaps heavily with the real feature's PI sequence — it's pretending to be a feature pointer.
Runtime verification
Two cuts targeted, both verified:
Code: Select all
Cut Playlist Duration Coverage Precision LCS
Theatrical 00440.mpls 02:02:22.376 84.6% 91.7% 11/13
"Selected" decoy 00006.mpls 00:00:13.000 100.0% 100.0% 13/13
The 13-second 00006.MPLS verifies perfectly because it contains the same PIs in similar order, just with each segment trimmed to 1 second. Worth flagging as a pattern to watch for — naive duration-blind logic could pick the decoy.
Final decision
Code: Select all
PRIMARY: 00440.MPLS — THEATRICAL — 02:02:22.376
Output : John Wick Chapter 2 (2017) THEATRICAL 1080p BluRay REMUX.mkv
00006.MPLS classified BDINFO_NOT_LISTED_RUNTIME_VARIANT (rejected as decoy)
BD-J entry points : 03001, 00000, 65536, 00858, 00924
[hr]
3. John Wick 3: Parabellum (2019)
Disc shape: CONFIRMED_BDJ_CONTROLLED_OBFUSCATED_SINGLE_FEATURE → revised to dual-feature after playback-truth pass
Disc type: BD-J OPAQUE MULTI-CUT
Native MPLS scan
Code: Select all
Playlists found : 438
Feature candidates : 402
Obfuscation patterns : 16
Sibling cut groups : 1 (~390 playlists)
Most of the sibling pool sits at 02:09:45.880.
One playlist in the pool is one minute longer at 02:10:45.880 (00444.MPLS) — that's the REAL MPLS hiding inside the alias cluster. There's also one outlier at 01:55:32.592.
Runtime verification
Three cuts targeted, all three verified independently:
Code: Select all
Cut Playlist Duration Coverage Precision LCS
Theatrical 00001.mpls 02:09:45.879 68.4% 81.2% 13/19
Variant (REAL MPLS.) 00444.mpls 02:10:45.879 73.7% 87.5% 14/19
Variant 00009.mpls 02:09:45.879 73.7% 82.4% 14/19
00009.MPLS shares the Theatrical's duration but has a different segment order — almost certainly an alias/decoy of the Theatrical with shuffled order rather than a third real cut.
ProcMon playback-truth pass
Code: Select all
Mode : PLAYBACK_CONTROLLER_DOMINATES
Confidence : ABSOLUTE
Dominant MPLS : 00003.MPLS (17,057 hits, 4.57% share)
Ratio vs second : 6.48x
00003.MPLS is the BD-J playback controller, not a feature target. Among real features: 00444.MPLS got
2,631 ProcMon hits vs. 00001.MPLS at
876 hits — 00444.MPLS (REAL MPLS) is what the BD-J controller actually drives during normal playback.
Final decision
Code: Select all
PRIMARY : 00444.MPLS — REAL MPLS — 02:10:45.879
SECONDARY KEEP : 00001.MPLS — FAKE — 02:09:45.879
Output : John Wick 3 Parabellum (2019) PROPER 1080p BluRay REMUX.mkv
BD-J entry points : 03001, 00000, 00858, 00924, 01140-01145
[hr]
Summary across the trilogy
Code: Select all
JW1 (2014) JW2 (2017) JW3 (2019)
----------------------- --------------- ------------------- --------------------------
Total playlists 340 452 438
Feature candidates 301 1 402
Obfuscation playlists 25 427 16
Sibling-cut group size 252 — ~390
Real feature cuts 1 1 2
Loop playlist (~6 hrs) yes yes yes
Subset-PI decoy trick — yes (00006) —
Disc archetype alias cluster narrow + 427 decoys alias cluster + buried 2nd
Three completely different obfuscation strategies on three sequential releases from the same studio. JW1 buries the feature in a flood of identical-duration siblings; JW2 keeps the feature lonely but surrounds it with hundreds of unrelated decoys including a same-PI-order trap; JW3 hides the Special Edition inside the sibling pool by giving it just one extra minute, and exposes it only via ProcMon hit-share.
Happy to share more details or the per-disc reports if anyone wants to dig into a specific layer