MLDMR Plugin

From Cinemar Wiki
Jump to: navigation, search

About

AMG - All Media Guide


MLDMR (Digital Media Recognition) is Cinemar's plugin to enable lookup of music / movie meta data and coverart from All Media Guide (AMG). AMG is the industry's best service for quality media meta data content. Unlike the free services used by our competitors, Cinemar uses AMG's premium service that includes lookup based on Table of Contents (TOC), Text based lookup and even audio recognition technologies that allows Cinemar to create the industry's easiest to use and maintain media system.

MLDMR is typically used when media is added to the MainLobby system. The user puts a media disk into a "lookup station" PC that has it's optical drive shared on the PC LAN. The user simply clicks a button in MainLobby user interface to start the recognition process. Within seconds, the pertinent disk information is sent to AMG via the Internet and the meta data and content is then downloaded to MainLobby Server's media.mdb database and coverart directory.

The Sony CX777ES DVD / CD changer is also supported by MLDMR for media lookup. A single disk, multiple disks or a full changer carousel can be indexed in one session to dramaticaly simplify the effort to maintain a MainLobby media library. The Sony XL1B and the Powerfile firewire changers are supported by MLDMR by adding the optional MLXL1B changer control plugin.

MLDMR works with MLServer3 v 3.0.450 (and newer), DVDLobby v 3.75.328 (and newer), MLCX777ES v 3.0.31 (and newer) and MLClientSvc v 3.0.13 (and newer).

MLDMR requires plugin licensing and activation to one PC. Multiple "lookup station" PCs within a single household are supported and licensed from the single PC MLDMR installation. MLDMR's license is renewed annually.

System Requirements

1) MLServer 3.0.450 [MLServer3]

2) MainLobby3 Client 3.0.127 (download via registered user's download webpage)

3) MLClientSvc 3.0.13 [MLClientSvc Plugin]

MLClientSvc Documentation

4) ClientSvc 1.0.13 [ClientSvc Application]

5) MLDMR 3.0.2960.13600 [MLDMR Plugin]

6) MLDVDLobby 3.75.328 [DVDLobby375 Plugin Update]

Link to DVDLobby375 Documentation

7) TheaterTek application: [TheaterTek Application]

8) MLTheatertek 3.5.138 [MLTheatertek Plugin]

9) Optional: DVDFab free version from www.dvdfab.com

10) Optional: MLXL1B Changer driver 1.0.8 [FireWire Changer Driver]

11) MLDMR the PCs should have .NET 2.0 installed along with any and all .NET security patches. The .NET 3.0 components are a layer that sit on top of the .NET 2.0 software that adds a lot of Vista functionality to other platforms. The plugin only needs the 2.0 version installed. (from Microsoft)

12) Optional: MLCX777ES plugin 3.0.31 For control and 2 way data from the Sony CX777ES analog 400 disk DVD changer.

13) The Visual C++ runtime files will be installed by the MLDMR installer. It is recommended that you allow the installer to do this necessary step to ensure you have this update. If you get a "Microsoft .NET Framework Unhandled exception has occurred in a component in your application...." message when MLServer relaunches, then you don't have either the C++ or .NET 2.0 updates properly installed. Microsoft C++ runtime package has not been installed or it did not install correctly. Look for a file called vcredist_x86.exe in your MLServer folder. Shut down MLServer and execute this file. This exe is the Microsoft C++ runtime files.

Installation

MLDMR requires MLServer3 and MainLobby3 Client to be installed:


Install MainLobby Server3 MLSERVER3 INSTALLATION AND SETUP


Install MainLobby3 Client MAINLOBBY3 CLIENT INSTALLATION AND SETUP


Configure the Client to talk to the Server STARTING MLSERVER AND SETTING UP CONNECTIVITY WITH A MAINLOBBY CLIENT


Download and install the following to MLServer3:


MLDMR.dll


With MLServer 3 shutdown, run the MLDMR_Setup.exe. This will install MLDMR to the MLServer Plugins directory. Restart MLServer3.

Note that MLDMR must be installed on the primary MLServer PC and that PC is required to be connected to the Internet for the lookup to work.

After you install MLDMR to MLServer and restart MLServer, you'll see that its license will be listed as Subscription showing how many days you have left in the subscription. MLDMR is licensed for one year of use. Make sure you configure MLServer's email capabilities to notify you before the subscription will expire to avoid a lapse of coverage. MLDMR installs with a 30 day trial period. During this period, you can test up to 25 movie lookups from a DVD changer - one at a time, multiples at once, or all 25 at once. You can also trial up to 25 text and hard drive lookups with saving to the DVDLobby database. Make sure you get to try all of these functions so you know the capabilities of MLDMR!


MLClientSvc.dll

Plugin that communicates to the remote ClientSvc app running on the remote PCs.

With MLServer 3 shutdown, run the MLClientSvc_Setup.exe. This will install MLClientSvc plugin to the MLServer Plugins directory. It is recommended to accept all installation defaults.


Default TCP port is 6292 and is also user configurable. When you first restart MLServer with MLClientSvc loaded, your Antivirus software may detect activity on this TCP port. Make sure you Accept this activity as being friendly. You may also have to manually configure your firwall and antivirus software to permit TCP traffic on this port.

MLClientSvc supports one command called "Send"

MLClientSvc is a member of the SYS family. It supports commands in the form

SYS.AliasName|Send~command~param1~param2~...paramN

You can define an unlimited number of remote workstations. Assign each one a unique alias. You have the option of having the plugin auto connect to the remotes as they come online.

MLClientSvc1.jpg MLClientSvc.dll


ClientSvc.exe

ClientSvc.exe is a mini application intended to run on a PC where you want to issues commands and control programs. It's uses will expand with future MainLobby Suite updates.

Install on any PC (optionally including the MLServer 3 PC) where you want to issue commands and control programs. Run the ClientSvc_Setup.exe to install. It is recommended to accept all installation defaults. Typically, you would have ClientSvc.exe to start when that PC is started up (put a link to it in the Startup Folder in Windows)

Default TCP port is 6292 and is also user configurable. This port needs to match the port setup in the MLClientSvc plugin. When you first start ClientSvc.exe, your Antivirus software may detect activity on this TCP port. Make sure you Accept this activity as being friendly. You may also have to manually configure your firwall and antivirus software to permit TCP traffic on this port.

If you want to use a PC "Lookup Station", you should share the Optical DVD Drive to the MLServer PC. Call this drive "DVDDrive" for consistency with the MLCycleStates DVDFolders default settings.


The "DVDFab" Alias is presetup to control DVDFab application

Here is the default command to have ClientSvc.exe invoke a DVDFab ripping session:

C:\Program Files\DVDFab\DVDFabPlatinum.exe /SRC "<<P1>>" /DEST "<<P2>>" /START /CLOSE /Monitor


You can add other Alias's and programs to execute as well.


Start Media Center on remote PC using MLClientSvc.dll and ClientSvc.exe

For example, you might want to launch J River Media Center on this client PC to use this PC as an audio server.

Here would be an example command to launch Media Center:

C:\Program Files\J River\Media Center 12\Media Center 12.exe /START

The command to invoke this new alias would be:

Sys.Study1|Send~MediaCenter~Run

Where Study1 is the ClientSvc.exe PC location Alias setup in MLClientSvc.dll and MediaCenter is the Alias setup in ClientSvc.exe to invoke the MediaCenter launch command (above).


Start TheaterTek on remote PC using MLClientSvc.dll and ClientSvc.exe


Here would be an example command to launch TheaterTek:

C:\Program Files\TheaterTek\TheaterTek DVD 2.0\TheaterTek DVD.exe /START


The command to invoke this new alias would be:

Sys.Study1|Send~TheaterTek~Run

Once the TheaterTek application is running, the MLTheaterTek plugin will take over communication with TheaterTek on port 2663 (it's default setting).


ClientSvc.exe supports two basic commands "RUN" and "STOP"


ClientSvc Setup.jpg ClientSvc.exe Setup

Application Configuration

Make sure you have MLCycleStates properly installed (installs with MainLobby Server 3 as an option).

Start MLServer 3 after the above components are installed.

In the Plugins window, go to Settings Tab in MLCycleStates.

Right click on the top of the tree and click Import. Navigate to the DVDFilter.states file and import those settings. Do same for the DVDFolders.states and DVDSortBy.states.


Edit the DVDFolders Data 1 / Label A / MLServer Command

Example:

SetVariable|Catalog_ScanFolder~\\Study1\DVDDrive

Where Study1 is the name of the remote "Lookup Station" PC and DVDDrive is the name of that PC's Shared DVD Optical drive.


Edit the DVDFolders Data 2 / Label B / MLServer Command

Example:

SetVariable|Catalog_ScanFolder~X:\Video

Where X:\Video is the local hard drive where movies are stored.


Edit the DVDFolders Data 3 / Label C / MLServer Command

Example:

SetVariable|Catalog_ScanFolder~\\HTPC1\DVDDrive

Where HTPC1 is the name of the second remote "Lookup Station" PC and DVDDrive is the name of that PC's Shared DVD Optical drive.


Close MLCycleStates.

Register the MLDMR plugin with the license code you received when you purchased MLDMR.


DVDFab Application

DVDFab is 3rd party commercial software that facilitates copying of DVD content to a PC hard drive. It's use should be for purposes within the applicable laws of your locality.

Legal Notice: Patent and copyright laws operate differently depending on which country you are in. Please obtain legal advice if you are unsure whether a particular patent or restriction applies to a media format you wish to use in your country.

Download from DVDFab Platinum

Our understanding is the free version will work.

Run the DVDFabPlatinum3116.exe

Accept all installation defaults with the exception of the install path. Change that to C:\Program Files\DVDFab\ . The default will be "\DVDFab Platinum 3\". This is so the default command in the ClientSvc.exe will work without adjustment.

Register the application.

You will have to reboot after DVDFab installs.

Launch DVDFab and make your language default choices and your temp and Output default directory choices. License DVDFab (if using premium version). Rip a movie directly in DVDFab to ensure that this is working correctly. You can cancel a ways in.

See the DVDFab alias that ships with the program. You use the alias name as a alternate command. See the "Process DVD" command in the DMR sample scenes for an idea on how this works.

DVDFab will crash if MLClientSvc sends a source folder using a network share name like: \\station\dvd. DVDFab must have a local source folder example: D:\.

If you use the special /MONITOR switch as one of the command line parameters then the program will monitor the program for Disk I/O activity.

When the DVDFab application has been inactive (no disk I/O) for 30 seconds it will be terminated by the ClientSvc.exe. This feature was added so that DVDFab could automatically be closed when a rip was finished. Otherwise, DVDFab forces the user to press OK to continue. Currently, there is no setting within DVDFab to prevent this.

When in monitor mode a MLServer variable will be created in the form "AliasName"_State and its value will be set to 0 or 1 depending if it is running or not. See the DMR "Process DVD" button in the DMR sample scenes for a working example.

DVDFab requires the drives to be Local drives and not Network named drives. So, your target drive should be mapped as a local, consistent drive letter across your LAN that is shared with all applicable security properties set.

DMR Sample Scenes

Three sample scenes are provided, CatalogLocal.mls, CatalogBrowse.mls and Catalog777ES.mls


"CatalogLocal.mls" scene Used for a remote client to recognize a DVD in a shared drive and then add or update the title in the media database. This uses the MLCycleStates DVDFolders and states to cycle through a list of shared DVD drives. You first select the DVD source and then click Identify. If multiple results are returned you can cycle through the results until you find the right one. If you have set up a Ripping station using DVDFab you can press the Process DVD button and the ripping will launch. As soon as the ripping begins you should see the path to the MovieFile automatically fill in. Once it does you can press Save to save the title to the media database.


Edit the "Process DVD" button

Example

Sys.Study1|Send~DVDFab~D:\VIDEO_TS~\\Server1\XDrive\Video\{{catalog_title}}

Where Study1 is the "Lookup Client" and \\Server1\XDrive\Video\ is the path you save your movies to.


"CatalogBrowse.mls" scene Used to browse the main Media database and make edits to the data. You can use various filters to narrow the results.

You will need the MLCycleStates DVDSortBy and DVDFilters loaded to make this work properly. Also requires the LibraryWeblobby.swf file since they use the InputText.GlobalVar that is contained in that library.


"Catalog777ES.mls"

Both of these scenes require the LibraryWeblobby.swf file since they use the InputText.GlobalVar that is contained in that library.

Using MLDMR

Media Lookup via PC "Lookup Station" DVD Optical Drive

Insert DVD disk into Lookup Station's DVD optical drive.

In MainLobby Client, navigate to CatalogLocal.mls

Select "Specify DVD Location" to find the correct Lookup Station drive.

Press "Identify DVD" button.

In a few seconds, you should see the movie's meta data and then the coverart.

If more than one movie was returned, click Prev Title / Next Title to pick which description best matches your movie. You can then press "Process DVD" button. If DVDFab is setup, this will send a message to the Lookup Station's ClientSvc.exe which will open DVDFab and the movie will be copied to the hard drive specified.

ClientSvc Logging.jpg ClientSvc.exe

Once DVDFab is done, ClientSvc.exe will close DVDFab. You can now click the "Save" button on the CatalogLocal.mls scene in MainLobby Client to save this movie's meta data and Movie File path to DVDLobby database.

The movie is now ready to watch via your configured movie renderer (like TheaterTek).

When a movie is added, a set of security rules take affect when a movie is added / edited to the database. On the security tab you'll see check boxes for all of the various ratings. The user will check off the boxes for movies that they want to be locked. After checking the boxes any time a movie is added to the database, or edited, it will be automatically be locked if the associated checkbox for the rating is checked off.


Sample Scene Descriptions

On Screen Keyboard

The On Screen Keyboard can be used via a touchscreen, via a mouse, or you can type using a standard keyboard into the onscreen keyboard's edit field. To create a new line of text, use Ctrl-Enter instead of the usual hitting of the Enter key. To delete the contents, hit the Clear button and then the Save button. For easier navigation in the keyboard edit field, you can hit the Home and End button to quickly move the cursor from the begining of your text to the end. You can also move the cursor using the navigation arrows. After typing your text, click the Save button to add your text to the field that launched the keyboard. You can slide the keyboard away without editing the field's contents by clicking the Cancel Button.

If you need to type significant amounts of text, a scroll bar will appear after the amount of text exceeds the size of the edit window. The scroll bar requires Flash 9C or newer to function. If it doesn't appear, shutdown all applications and browsers and uninstall Flash and reinstall latest. Reboot and relaunch MainLobby Client.

From a programming perspective, the keyboard launch button's MLServeCmd establishes the field that the keyboard will Save to. Review that MLServeCmd in the button's Edit field for it's usage.

The keyboard allows for the user to change the colors of the buttons if they don't like the defaults.

When the keyboard loads it checks for the existence of key server variables. If the variables are defined then the numeric values stored in the server variables is used for the button color.

The following six variables are used to define button colors. Colors must be specified using standard web color syntax, i.e. 0xRRGGBB

SetVariable|kb_buttonupclr~0x0033CC

kb_buttonupclr = color of buttons at rest (Up) default = 0x0033CC kb_buttondnclr = color of buttons when pressed (Down) default = 0xCC0066

kb_capslockupclr = color of CapsLock at rest (Up) default = 0x0033CC kb_capslockdnclr = color of CapsLock when pressed (Down) default = 0xFF3333

kb_shiftupclr = color of Shift keys at rest (Up) default = 0x0033CC kb_shiftdnclr = color of Shift keys when pressed (Down) default = 0xCC0066

kb_saveaction and kb_cancelaction server variables control what happens when you press save and cancel

Sample command to reset keyboard to default:

Macro|SetVariableFast|kb_saveaction~!SetVariableFast|kb_cancelaction~!SetVariableFast|kb_buttonupclr~0x0033CC!SetVariableFast|kb_buttondnclr~0xCC0066!SetVariableFast|kb_capslockupclr~0x0033CC!SetVariableFast|kb_capslockdnclr~0xFF3333!SetVariableFast|kb_shiftupclr~0x0033CC~SetVariableFast|kb_shiftdnclr~0xCC0066  


Media Lookup via Sony CX777ES Changer

Requires MLMath, MLCycleStates, MLCX777ES, MLDMR plugins

Open the 0019_Movies.Catalog.CX777ES.mls scene.

On the 0019_Nav_Movies.Catalog.CX777ES.mls Overlay scene that the primary scene loads, spccify the Sony 777ES changer number by clicking on the > or < buttons. You can also click the keyboard icon which will slide the 0019_BrowseKeyboard.mls scene up. You can directly enter the changer number and click "OK". The Changer Number choice is stored in MLServer variable {{catalog_refchanger}}.

Next, select the slot location in your changer that contains your movie. You can enter an individual slot "175" or you can enter multiple slots seperated by commas (use the Keyboard) "175, 182 , 191". You can also put in slot ranges "110 - 115" or a mix of individual and ranges "110 - 115, 122, 128". The default is slot "1". Many will use this slot as the "rental movie" slot. The Changer slot(s) choice is stored in MLServer variable {{catalog_refslots}}.

To start the lookup process, click the Get Title(s) button. This invokes the DVDLobby command MLDVDLobby|Catalog_CX (open the overlay scene and select button edit mode and examine the complete command).

Once the movie data is returned by AMG, you can scroll through the choices by clicking the Next Title and Prev Title buttons. You can choose to edit the movie information by clicking the keyboard icon next to the field you want to edit, or click the < or > buttons next to the multiple choice entries (like Genre). Once you are satisfied with your choices, click the Save button to save this movie entry into your media.mdb database (your DVDLobby movie database).

If no movie information is returned by AMG (rare, but it does happen, especially with a brand new title), you can enter the movie metadata yourself and then can click both the Save (saves to your local media.mdb) and you can also optionally click the "Send to AMG" button to contribute the title back to the master AMG movie database. Your addition contributes to the community and improves movie lookup for all. The command that invokes this process is MLDVDLobby|Catalog_SendAMG.


Media Lookup via 0019_Movies.Catalog.Folders

Requires MLMath, MLCycleStates, MLDMR plugins

Open the 0019_Movies.Catalog.Folders.mls scene.

On the 0019_Nav_Movies.Catalog.Folders.mls Overlay scene that the primary scene loads, spccify the Movie Folder location by clicking on the > or < buttons. These choices are maintained in the MLCycleStates plugin's DVDFolders setting. The Folder choice is stored in MLServer variable {{catalog_scanfolder}}.

Next, click the Get Titles button. This tells the DVDLobby plugin to navigate the chosen folder and grab all of the movie titles. The Get New Titles button will only display titles that exist in the chosen folder, but are not already in your movie database (media.mdb).

Once the titles are captured, DVDLobby plugin then automatically instructs the MLDMR plugin to lookup the first returned movie. If there is an AMG match, you will then see the movie metadata and coverart populated. You can click the < or > buttons to navigate to the next title in the directory. The MLDMR plugin will then lookup and return that movie's metadata.

To start the lookup process, click the Get Title(s) button. This invokes the DVDLobby command MLDVDLobby|Catalog_CX (open the overlay scene and select button edit mode and examine the complete command).

Once the movie data is returned by AMG, you can scroll through the returned choices by clicking the Next Title and Prev Title buttons. You can choose to edit the movie information by clicking the keyboard icon next to the field you want to edit, or click the < or > buttons next to the multiple choice entries (like Genre). Once you are satisfied with your choices, click the Save button to save this movie entry into your media.mdb database (your DVDLobby movie database).

Note that if you have a two disc movie set, that you can name the first disk "Jaws - Disk 1" and everything after the hyphen is ignored during the AMG lookup. So, the second disk would be "Jaws - Disk 2". Both will return the same movie metadata and coverart.

If no movie information is returned by AMG (rare, but it does happen, especially with a brand new title), you can enter the movie metadata yourself and then can click the Save (saves to your local media.mdb).

Media Lookup via 0019_Movies.Browse.mls

This scene demonstrates just one way your DVDLobby 3.75 scene can look. You will find that the {{clientname}} is used in the image's label and MLServeCmd fields to allow for MainLobby client specific views of your movie collection. Each MainLobby user can view the library independently of each other.

The 0019_Movies.Browse.mls scene can be opened in MainLobby Design and Edit modes to modify what the DVDLobby scene looks like and how it navigates. The primary scene loads the overlay scene 0019_Nav_Movies.Browse.mls.

Within the DVDLobby 3.75 Plugin, you can configure how many icons per page will be presented.

Also supported is means to apply Filters to the viewed selection to search for movies with a particular title, or genre, etc. To use this new function, select which criteria you want to filter from (Title, Genre, etc), and then click the Filter Value arrows to scroll through the eligible filter values. Hit the Go button and you should see the coverart change to match your requested filter results.

To "unfilter", just select the "ALL" filter and hit the Go button. You should now be looking at your complete collection.

Also included is the 0019_BrowseSecurityCode scene. This scene slides in when you click the "Unlock" button. Currently, in the Submit button's MLServeCmd, the unlock code is set as '1234'. In the 0019_Movies.Browse.mls scene's Exit MLServeCmd, the MLServer variable that controls locking per client is reset to Locked when you exit the scene. This is so one must always unlock whenever they enter the movie selection page to see locked movies.




Sample workflow for adding the new movies

Open the Add Movies scene. Select the source folder using the left right arrows under the Specify Movie Location label. In this example it is \\Nemo\MediaA. Then click on the Get New Titles button.

The plugin will scan all the folders in the specified location and build a list of eligible titles. This list will appear to the right of the Get titles button. In this example it discovered 27 new movies. Use the left right arrows under the Reviewing items label to select the title of interest.

As you select each title a MLDMR search is performed to try to identify the title. Once a title is found the meta data for the movie is displayed in the main screen. You will note that AMG will often return many hits for a particular title. It is configured to return a maximum of 25 for each search.

In the event that the returned data does not match the movie you can click on the Prev Title and Next Title buttons to scroll through the various search results. When you are happy with the results click on the Save button to store the movie in the database.

You should make sure that the location field is set to the proper location for this movie. The location field maps to the location fields in the plugin and this field defines the play command associated with the movie.

Note that you can edit the AMG derived data by clicking on the field that requires editing keyboard Icon. The on screen flash keyboard will then slide up already set with the context of that field. Type your new words and click Save. You can then save the movie record with your revised verbage.

Bugs

Feature Requests