A Better Way To Find The Correct Playlist/Segment Map
Posted: Mon Jun 19, 2017 11:22 pm
I've seen a lot of folks still referring to old YouTube videos showing how to use Process Monitor and PowerDVD to find the correct playlist when there is a lot of playlist obfuscation on a Blu-Ray disc. Unfortunately, that method is dated and is not always accurate anymore because PowerDVD accesses random playlists on a disc to throw you off.
Below is the method I use for finding the correct segment map. It is similar to those YouTube videos, but you are getting the actual segment map, not a faked .mpls playlist.
Open Process Monitor. Create a filter for the following:
1. "Process Name" contains "DVD". (works for PowerDVD.exe, WinDVD.exe, etc.)
2. "Operation" is "CloseFile".
3. "Path" ends with ".m2ts". (NOT .mpls!)
Check to see if you have a column header titled "Path" showing in ProcMon. If you do not, RIGHT-click on any column header and choose "Select Columns...". In the middle section titled "Event Details" make sure you put a check in the box for "Path" then click OK.
Now, start capturing events in ProcMon (File>Capture Events).
Fire up PowerDVD. Play the disc. Get past all of the initial junk until you get to the main menu. Immediately after hitting play on the main menu and you see the actual movie playing, just clear the contents of the ProcMon window (Edit>Clear Display). This clears all the initial garbage we don't need or care about that we already sat through (previews, menus, warnings, studio logos/intros, etc.). Now as the movie is playing, hit the fast forward button in PowerDVD and put it on max speed 32x fast forward. Let the movie play to completion. Stop logging events in ProcMon (File>Capture Events) immediately after the credits finish and the last segment shows in ProcMon. Close PowerDVD. Ignore or remove any additional entries that may have populated in ProcMon that showed after the credits ended because that's just the disc going back to playing junk/menus.
Assuming you set up your filters correctly and were capturing events as the movie played, you would have seen that once PowerDVD had finished playing a segment of the movie, an event would be added in the ProcMon window showing which file (segment) was played. Look at each line/row in order from top to bottom. Under the "Path" column it will have a value like "D:\BDMV\STREAM\00520.m2ts". Look at the ending file name and drop the leading zeroes and the .m2ts for each line. Let's say your list of rows in the ProcMon window shows file names of 00520.m2ts, 00530.m2ts, and 00523.m2ts. Your segment map is "520,530,523". Some movies only have 1 segment, others can have a very large number of segments. Now, go find the playlist in MakeMKV that matches the example segment map of 520,530,523 and start ripping that playlist.
All of the below stuff is optional, but it can come in handy when there are hundreds of playlists to sort through. I actually key in the segment numbers appearing in ProcMon into Notepad as the movie plays in the background so I'm ready to easily search for the segment map in this next step. I type the segment map all together on one line, no spaces, each segment separated by a comma like "520,530,523".
Next thing I do is dump out the disc data from MakeMKV to a text file using this command on the command line (Windows). Modify it for your purposes as needed.
"C:\Program Files (x86)\MakeMKV\makemkvcon.exe" --robot --messages=C:\Users\YourUserName\Desktop\MakeMKVOutput.txt info disc:0
Then I open up my MakeMKVOutput.txt file from my Desktop in Notepad and I do a search (Edit>Find) for the segment map which again in this example is "520,530,523". I click (Edit>Find Next) to make sure there is only one title that is found with that segment map. It actually is possible that more than one title/playlist has the same segment map (and that's OK).
Anyway, if you look at the line in Notepad that was found with your segment map ("520,530,523"), look a couple of lines just above it for the name of the playlist (.mpls) for that title. The line will read something like "TINFO:0,16,0,"00943.mpls"". So in this example you know to go to playlist "00943.mpls" in MakeMKV instead of hunting through hundreds of titles/playlists. Click it in MakeMKV to make sure the description matches your segment map, and if it does, rip away.
Below is the method I use for finding the correct segment map. It is similar to those YouTube videos, but you are getting the actual segment map, not a faked .mpls playlist.
Open Process Monitor. Create a filter for the following:
1. "Process Name" contains "DVD". (works for PowerDVD.exe, WinDVD.exe, etc.)
2. "Operation" is "CloseFile".
3. "Path" ends with ".m2ts". (NOT .mpls!)
Check to see if you have a column header titled "Path" showing in ProcMon. If you do not, RIGHT-click on any column header and choose "Select Columns...". In the middle section titled "Event Details" make sure you put a check in the box for "Path" then click OK.
Now, start capturing events in ProcMon (File>Capture Events).
Fire up PowerDVD. Play the disc. Get past all of the initial junk until you get to the main menu. Immediately after hitting play on the main menu and you see the actual movie playing, just clear the contents of the ProcMon window (Edit>Clear Display). This clears all the initial garbage we don't need or care about that we already sat through (previews, menus, warnings, studio logos/intros, etc.). Now as the movie is playing, hit the fast forward button in PowerDVD and put it on max speed 32x fast forward. Let the movie play to completion. Stop logging events in ProcMon (File>Capture Events) immediately after the credits finish and the last segment shows in ProcMon. Close PowerDVD. Ignore or remove any additional entries that may have populated in ProcMon that showed after the credits ended because that's just the disc going back to playing junk/menus.
Assuming you set up your filters correctly and were capturing events as the movie played, you would have seen that once PowerDVD had finished playing a segment of the movie, an event would be added in the ProcMon window showing which file (segment) was played. Look at each line/row in order from top to bottom. Under the "Path" column it will have a value like "D:\BDMV\STREAM\00520.m2ts". Look at the ending file name and drop the leading zeroes and the .m2ts for each line. Let's say your list of rows in the ProcMon window shows file names of 00520.m2ts, 00530.m2ts, and 00523.m2ts. Your segment map is "520,530,523". Some movies only have 1 segment, others can have a very large number of segments. Now, go find the playlist in MakeMKV that matches the example segment map of 520,530,523 and start ripping that playlist.
All of the below stuff is optional, but it can come in handy when there are hundreds of playlists to sort through. I actually key in the segment numbers appearing in ProcMon into Notepad as the movie plays in the background so I'm ready to easily search for the segment map in this next step. I type the segment map all together on one line, no spaces, each segment separated by a comma like "520,530,523".
Next thing I do is dump out the disc data from MakeMKV to a text file using this command on the command line (Windows). Modify it for your purposes as needed.
"C:\Program Files (x86)\MakeMKV\makemkvcon.exe" --robot --messages=C:\Users\YourUserName\Desktop\MakeMKVOutput.txt info disc:0
Then I open up my MakeMKVOutput.txt file from my Desktop in Notepad and I do a search (Edit>Find) for the segment map which again in this example is "520,530,523". I click (Edit>Find Next) to make sure there is only one title that is found with that segment map. It actually is possible that more than one title/playlist has the same segment map (and that's OK).
Anyway, if you look at the line in Notepad that was found with your segment map ("520,530,523"), look a couple of lines just above it for the name of the playlist (.mpls) for that title. The line will read something like "TINFO:0,16,0,"00943.mpls"". So in this example you know to go to playlist "00943.mpls" in MakeMKV instead of hunting through hundreds of titles/playlists. Click it in MakeMKV to make sure the description matches your segment map, and if it does, rip away.