I have the library merger done. So now it is time for you to test. Here's what you need:
1. Download and install the appropriate version of
ActivePerl for your system (or
Cygwin tools - include perl. If you are on a Mac, you already have perl installed.)
2. Download and unzip the attached mergelib zip file and save it somewhere convenient.
3. You'll need MPL exports of the libraries you want merged. One library at a time, load the library, and export it using File > Export Playlist. Select options MPL Playlist (Media Center only) and Output Range: All. Provide an appropriate Filename (and perhaps Title) indicating to which library this export belongs, and save the file somewhere convenient for accessing via command line.
4. Open a command window and run the command. The command syntax is:
perl.exe mergelib.pl mclib1.mpl mclib2.mpl [...] > merged.mpl
where mclib1.mpl, etc. are paths to your two or more MPL files, and merged.mpl is a filename path where the merged MPLs output will be placed. If you are on a Mac or other unix/linux system, either use perl instead of perl.exe (or eliminate the need to use state the perl interpreter by making the script executable).
You can examine the contents of merged.mpl. When you are ready to import, use File > Import Playlist and import the merged.mpl file.
I would advise that you test importing to a new library first. And certainly backup your library before doing an import (File > Library > Back Up Library), so that if anything goes wrong, you can Restore Library.
You can also export only the selected items to the MPL files if you wanted to test something smaller. Just select the items you want exported, and choose the Output Range: Selection export option (instead of All).
For each file entry in the MPLs (keyed off Filename), the field values are handled accordingly:
The following field values are summed:
- Number Plays
- Skip Count
The greatest value (i.e. oldest date) is selected for the following fields:
- Last Played
- Last Skipped
- Date Created
- Date Modified
- Date Imported
For all other fields, the value used will be from the file with the most recent Date Modified.
If a field exists in any MPL, it will be added to the output MPL.
If you have Custom fields you'll want summed, it is easy enough to modify the code to catch these cases.
Let me know how it works out.