I'm trying to set up an automatic action whenever I insert a movie into my HTPC that will just rip it to mkv without me having to do anything else. It seems like the console version of makemkv would be ideal for this, so long as I could find a way to query the disc to figure out which tracks I want to rip, and could pass those through. Here's exactly what I would like to do, much of which I understand may not be available in the current console version:
1) put the disc in the player and have it automatically execute my script (no problem, has nothing to do with makemkv)
2) my script would use makemkv to query the disc for the list of titles (if I could use a minimum title length as in the GUI, that would be great) and their track list, and make a record of the largest title assuming it's the main movie. Actually, I would probably just grab any title over 10 minutes, to properly grab TV show seasons, and just sort through any special features files after the fact
3) pass through each of the large titles to makemkv in turn, the video track should be automatically selected as in the GUI and I can specify which audio track I want and which subtitle track I want, based on my parsing the track list for tracks that specify English and the highest audio mix
Here's specifically what I'd like to see with the console version:
makemkvcon [optical drive] query (-l=600) -m
this would take a drive letter as a source and return a list of titles and their track list, basically the information that you see when you're making your selections in the GUI (the optional -l parameter would be the minimum title length in seconds). The -m flag tells it to return in a machine readable format like XML or otherwise delimited somehow. Alternately it could just return the titles, and I could query the track list for each title individually
makemkvcon [optical drive] mkv -t=[title id] -r=[track id|default](,[track id|default]) [destination]
this would use the same source reference as before, but mkv indicates to rip and package the mkv, -t would allow you to specify the specific title ID that was wanted, -r would allow you to specify individual track ids if you wanted, and choose which one is the default (if any)
Altogether, it would go something like this:
makemkvcon E: query -l 600 -m
output: [suitably compressed, expanded here for readability]
<xmlroot>
<disc name="NAPOLEON_DYNAMITE_16X9">
<title id="1" chapters="21" size="3.6 GB" length="1:34:28">
<track id="1" type="video">MPEG2"</track>
<track id="2" type="audio" name="3/2+1" language="english" codec="Dolby Digital" channels="6" sample_rate="48000 kHz">DD 3/2+1 English</track>
<track id="3" type="audio" name="2/0" language="spanish" codec="Dolby Digital" channels="2" sample_rate="48000 kHz">DD 2/0 Spanish</track>
<track id="4" type="audio" name="2/0" language="english" codec="Dolby Digital" channels="2" sample_rate="48000 kHz">DD 2/0 English</track>
<track id="5" type="subtitle" language="english" codec="dvd subtitles">English</track>
<track id="6" type="subtitle" language="spanish" codec="dvd subtitles">Spanish</track>
<track id="7" type="subtitle" language="french" codec="dvd subtitles">French</track>
<track id="8" type="subtitle" language="spanish" codec="dvd subtitles">Spanish</track>
</title>
</disc>
</xmlroot>
makemkvcon E: mkv -t=1 -r=2|y,5|n "C:\MKVFOLDER\Napoleon Dynamite.mkv"
This would create an MKV of Napoleon Dynamite with the video, the 3/2+1 audio soundtrack set as the default, and the english subtitle track set off by default
... so (speaking as one developer to another), this will be ready sometime next week, then?