Playlist obfuscation workaround on Linux

The place to discuss linux version of MakeMKV
Post Reply
Message
Author
aududen
Posts: 1
Joined: Mon Mar 16, 2026 1:44 pm

Playlist obfuscation workaround on Linux

#1 Post by aududen » Mon Mar 16, 2026 2:21 pm

Overview
Playlist obfuscation is a tool used by disc-makers to make ripping harder than it otherwise would be. This is done by creating a number (often in the hundreds) of "fake" playlists that run the original movie's clips, just in a jumbled order. As such, the playlist duration and file size remains identical - but only one of them contain the film segment in the correct order.

Workaround
Assumptions
For this workaround, we'll assume the following:
- The ripping program is unable to use Java to identify the correct playlist.
- We're on a Linux platform, but we have Wine available to execute Windows native programs.

Tools
The tools we'll make use of for this are as follows:
- MakeMKV
Our GUI ripping tool of choice. Will be used to perform the rip when we've found the correct playlist.
- MakeMKVcon
CLI tool that will be used to extract playlist segment orders to a local file, so we can easily match our discovered order against all playlists offered by the disc.
- inotifywait
CLI tool that will be used to monitor the currently read files on the disc, which will let us put together the correct playlist.
- Aiseesoft Blu-ray Player (https://www.aiseesoft.com/blu-ray-player/)
A simple Windows native, Wine-supported Blu-ray player with support for menu navigation. Will be used to play the disc while automatically selecting the correct playlist.
- Any other Blu-ray player capable of selecting the correct playlist will also work.
Note: Even if you can get VLC to play the Blu-ray, it sometimes struggles with selecting the proper playlist. That's why we use dedicated Blu-ray player software for this.
- Some basic shell tools (`grep` etc.), for file parsing.

Procedure
1. Extract the playlist sequences from the disc.
1a. Insert the disc into the optical drive.
1b. Run the following command:

Code: Select all

makemkvcon --robot --messages=./playlistinfo_tmp.txt info disc:0 && grep -B1 .mkv playlistinfo_tmp.txt > playlistinfo.txt && rm playlistinfo_tmp.txt
1c. The file `./playlistinfo.txt` contains all playlists and their corresponding segment order.

2. Mount the file to the file system (either through the file explorer or using `mount -m /dev/<optical drive name> <mount point location>`).

Example:

Code: Select all

sudo mount -m /dev/sr0 /mnt/disc
3. Start monitoring for files being accessed inthe disc's segment folder (for Blu-rays: `BDMV`) using the following command:
`inotifywait -m -r --event open --format '%T %f' --timefmt '%H:%M:%S' <disc segment folder> | grep --line-buffered -E "(.m2ts)$"`
Example:

Code: Select all

inotifywait -m -r --event open --format '%T %f' --timefmt '%H:%M:%S' /mnt/disc/BDMV/ | grep --line-buffered -E "(.m2ts)$"
4. Start Aiseesoft Blu-ray Player (or your Blu-ray player of choice), navigate through the menu and start playing the main feature.
Note: If the player complains about an unlicensed drive, try selecting another playlist, and forward to the very end. This will often send you to the menu, bypassing the DRM lock.

5. The terminal will now monitor for which files are opened during playback. Whenever a new segment file is opened, the terminal will print the file's name.
Either let the movie play out on it's own, or use the progress bar to skip through the movie, making sure it opens every segment file.
Note: Don't skip through too quickly for the reader to catch up, or short segments can be completely bypassed.

6. After playback is finished, note the order of every opened file. (If it went back to the menu after finished playback, the last entry / entries can be omitted. Usually these have a different file name style than the main feature, making them easy to identify).

7. Open a text editor, and format the files in order, removing the leading zeroes, and comma-separating the file name segments.
Example:
507,515,504,511,517,514,519,508,520,500,506,518,502,509,512,501,516,503,510

8. Match the string against the contents of `playlistinfo.txt`, using either CTRL+F, or `grep`.
Example:

Code: Select all

grep "507,515,504,511,517,514,519,508,520,500,506,518,502,509,512,501,516,503,510" -A 1 playlistinfo.txt
9. The number sequence should match a single playlist entry, with the title index in the playlist name in the line below (`<FILM_NAME>_t***.mkv`). Note the name - this is the correct playlist.

10. Open MakeMKV, read the disc as usual. On title selection, right click -> deselect all. Find the playlist with the name matching the entry found in step 9, and check only that one.

11. Start ripping! :D

Post Reply