(former Restore PlayHistory/Playlists/Metadata)
- MediaMonkey Add-on - by Zvezdan Dimitrijević
This add-on works with MediaMonkey v3.0-4.x. It could restore or synchronize (merge) the following data from/to some external (backup) database file:
- playing history (the Played table and Playcount + LastTimePlayed fields in the Songs table),
- playlists (auto-playlists and/or static ones in Playlists and PlaylistSongs tables),
- filters [MM3 db] / collections [MM4 db] and views (Filters, Views and NodeViews tables), and/or
- specified fields from the Songs table (e.g. Artist, Title or DateAdded field, however for some fields some another tables would be updated as well, e.g. Genres and GenresSongs if you specify Genre for restore).
This add-on could restore/synchronize data for all tracks in the current database or just filtered or selected ones. It could import/export data even from/to the backup file which is not a copy of the current database, i.e. the current database could be created from the ground after the last backup, as soon as they contain matched tracks.
If you have adequate backup file, this add-on could be used as Undo tool as well. Let say that you have edited some tag/field in bunch of tracks and after that you have changed your mind. Nothing to worry: just select files that are affected, specify which tags you want to restore and the add-on will import that data from the specified backup file into the current database. Also, this add-on could transfer data from many corrupted databases into the new, fresh ones.
For a discussion about this add-on, you could visit its related MediaMonkey forum thread.
This add-on is donationware. I am its sole developer and work on it in my own free time. I am not employed by Ventis Media, the company behind MediaMonkey, nor have I been paid by them for my efforts. If you find my add-on useful and want to help its further development, it would be nice if you could send a small donation using PayPal. In that case you will receive the enhanced version as a gift that is available only to donors.
The enhanced version of the add-on is sent via e-mail attachment. If your personal e-mail address is different than the one for your Paypal account, please leave me a note with that info. After donating, if a day or two has passed and you still have not gotten my e-mail, you should check your Spam folder; if you cannot find it in there, please send me an e-mail with the information about your donation to:
. To avoid that from happening, I strongly recommend putting my e-mail address in your contact list before you make a donation to prevent it from being seen as spam, especially if you are a GMail user. Thanks in advance!
This add-on doesn't work with MediaMonkey v5! No add-on made for a previous version of the program will work with MM5, either by me or any other author, since MM5 has completely different programming interface than before. If you really like my add-on and think that it is essential for your work with the program, you have several possibilities:
- you could stay with MM4;
- you could ask MM developers to implement support for old add-ons in MM5;
- you could wait for me to port the add-on to MM5, but don't hold your breath.
Fixed: restore of playing history when Clear Played table is enabled.
v3.1.6 - 2016-12-22
Improved: speed of some SQL operations;
Fixed: many things.
v3.1.3 - 2015-06-22
Fixed: some things.
v3.1.2 - 2013-08-31
Fixed: error when restoring both Static and AutoPlaylists with Clear Playlists option turned on, if backup DB is from MM 4.0 and current DB is from MM 4.1 or vice versa;
Fixed: finding of matched tracks in some cases.
v3.1.1 - 2012-05-31
Fixed: error on restoring auto-playlists with the condition: Tempo/Mood/Occasion/Quality "is" ... (broken since v3.0);
Fixed: error with Update tags in files too.
v3.1 - 2012-04-04
Added: option Clear Filters table first (also Views & NodeViews for MM4 db);
Added: option to import/export Bookmark, Start Time, Stop Time, Skipped # and Type fields [MM4];
Fixed: error with Update tags in files as well.
v3.0.2 - 2012-01-25
Fixed: error on import/export of filters when Filter table is empty.
v3.0.1 - 2012-01-12
Fixed: import/export of filters.
v3.0 - 2012-01-09
Added: possibility to export data to the external (backup) database file;
Added: possibility to make a backup of the current database;
Added: option which allows export/import of filters [MM3 db] / collections [MM4 db] and views;
Added: option Update tags in files as well which could be used only on import;
Added: new matching test for path without drive letter, first folder & extension (e.g. if the path is c:\Music\Rock\Pink Floyd\Time.mp3, then only Rock\Pink Floyd\Time would be compared) AND SongLength;
Changed: calculation of PlayCounter if Clear Played table option is turned off, it is now maximum of 2 values(PlayCounter before import + number of non-existent plays of matched tracks from backup, backup PlayCounter);
Improved: speed in some cases.
v2.1.3 - 2011-12-09
Fixed: restoring playlists with some corrupted databases and some MM4 "normal" (?) ones.
v2.1.2 - 2011-11-15
Fixed: auto-playlists with the condition: Album "equal/doesn't equal" ..., when backup is not a copy of the current database.
v2.1.1 - 2011-08-04
Fixed: restore of metadata stored in the Songs table only (multi-item fields linked to several tables was not affected).
v2.1 - 2011-07-19
Added: possibility to restore playlists even when Restore data only for filtered/selected tracks options are turned on (playlists would be restored for all tracks anyway);
Fixed: error when restoring playlists with Clear Playlists table... option turned on when importing data from MM3 backup into MM4 db or vice versa;
Fixed: dates when importing playhistory from MM4 backup file into MM3 database.
v2.0 - 2011-07-17
Added: possibility to restore specified fields from the Songs table (Artist, Album, Title, ...);
Added: option to restore only selected tracks;
Added: option to restore only tracks from the specified filter [MM3] / collection [MM4];
Added: option to restore auto-playlists or static playlists independently;
Added: possibility to import data from MM3 backup file into MM4 database and vice versa;
Added: more detailed information about the execution time and progress;
Improved: speed (in some cases drastically);
Fixed: error when restoring playhistory with Clear Played table... option turned on [MM4];
Fixed: program hangup with some filters;
Fixed: program hangup with some auto-playlists having very long tags;
Fixed: auto-playlists with the condition: Playlist "is/is not" ..., when backup is not a copy of the current database;
Fixed: static playlists with incorrectly added/missing tracks when backup is corrupted.
v1.4.2 - 2010-09-03
Fixed: problem with some auto-playlists when backup is not copy of the current database.
v1.4.1 - 2009-11-16
Fixed: error when database contains multiple playlists with same name on the same folder level.
v1.4 - 2009-08-28
Added: option to restore playlists (both auto-playlists and static ones);
Added: option to merge playlists (if Clear Playlists... option is turned off);
Added: extra matching test for FileName/SongLength/Artist/Album/Year/TrackNumber fields (useful if audio format of tracks is different between backup and current database).
v1.3 - 2009-08-26
Added: extra matching test for FileName.ext/FileLength/Album/Year/TrackNumber fields, i.e. track from current database is same with the track from backup database if all those fields are same, even if their paths and checksums are different.
v1.2 - 2009-08-23
Added: option to restore Date Added field;
Added: option to restore only filtered tracks;
Added: option to merge/clear playstats before restoring data;
Added: display of the number of tracks in the current database matched to backup.
v1.1.2 - 2009-08-21
Fixed: work with multiple tracks with same checksum.
v1.1.1 - 2009-08-21
Fixed: work with databases without track checksums.
v1.1 - 2009-08-21
Added: matching test for track checksums, i.e. track from current database is same with the track from backup database if checksums are same even if their paths are different;
Improved: speed drastically (~60 times faster);
Fixed: matching test for paths now use serial number of disc as well to avoid situations with tracks with same filename, but different drive (c:\track.mp3 and d:\track.mp3 was incorrectly manipulated as one track).
Just double-click on the RestorePlayHistory-xx.mmip file; if you are on Vista or Win7 and you got "Product installation error", make sure you have MM set to "Run as Administrator"; if you downloaded the installation package with IE and it changed its extension to a .zip, you should first change it back to a .mmip.
First of all, you need to have a backup of database file. You could use this add-on to make the backup or you could copy the database by yourself - here you could find its location depending of the version of MediaMonkey and Windows.
Choose the Tools | Scripts | Restore/Synchronize Database command to start this add-on, then specify the external (backup) database file with which you want to restore data, turn on the Clear Played/Playlists/Filters table... options if you want to restore data or turn them off if you want to merge data, adjust other options, click the Export button if you want to restore data in the external file or click Import if you want to restore data in the current database, and wait for the add-on to finish. It is rather slow and needs several minutes with larger databases.
If you have Clear ... table option turned off, i.e. if you want to merge data, and if you run this add-on twice with the same backup file, it will not add the playhistory/playlists/filters twice - the add-on will compare those data from the backup and current database files and if they are same it will skip them.
This version of the add-on could import/export data only if there are tracks in the backup file that are matched with the tracks in the current database, i.e. if they have the same:
1. full path (folders\filename.extension) OR
2. checksum (made after click on Files To Edit / Duplicate Content) OR
3. filename with extension AND FileLength AND Album AND Year AND TrackNumber OR
4. path without drive letter, first folder & extension AND SongLength OR
5. filename without extension AND SongLength AND AlbumArtist AND Album AND Year AND TrackNumber.
The 2-5. criteria cover situations with modified track locations after backup. The 4-5. criteria further cover situations with different audio formats in the backup and current databases, e.g. if the backup database contains .flac tracks and the current one contains .mp3 tracks instead, but with the same filename, song length and other mentioned tags. The 2-5. criteria have the true condition only if there are exactly two matched tracks - if there are three or more tracks matched with those criteria, they would return the false condition and such tracks should have same full paths to be considered as matched. The data for tracks that are not matched between current and backup database files would not be restored.
If this add-on is used in MM3 it has two possible methods of restoring static playlists. The default method is very slow, but it is more reliable when the backup file contains corrupted database. The another method could cause the missing tracks from playlists and even could crush during the execution in MM4 with the corrupted databases, but it is a way faster. For example, with one test database the faster method in MM3 lasted approx. 150 seconds instead of 1600 with the default method (by the way, the playlists was restored in approx. 40 seconds from the same database in MM4 using the default method). There is no GUI control for choosing the restoring method, so if you want to turn the faster method on, you should open MediaMonkey.ini file into Notepad and enter the line PlistAltMethod = 1 into the [RestorePlayHistory] section; if you want to turn it back to the slower, more reliable method, enter PlistAltMethod = 0 or just remove that line from the .ini file.
There is also one more ini key in the [RestorePlayHistory] section which could be used to speed up the comparison of databases - it is called ExtraMatchTests and could take a value from 0 to 4, which represents the number of additional tests, beside of the base one which compares full paths. Its default value is 4, so all 5 tests mentioned in the Description section are performed. You need to exit the program before you change some value in .ini file.
This add-on could only restore data from/to some backup file, it cannot restore the current database with itself. You need to have already made the backup file before you get some problem with the current database - nothing can be done if you don't have it.
If you have upgraded computer or changed hard disk and if you copied all media files to it keeping the same folder structure, then you could first try to transfer MM database to it and update it using Update Location of Files in Database add-on instead since it is a way faster and simpler to use.
If you choose the Clear Played table... option, the Played table and playstat fields would be overwritten after applying the Export/Import command! Same state for playlists and filters with the corresponding Clear ... options. If you want to merge data, you should leave those options unchecked.
This add-on is relatively dangerous and could cause some corrupted data in the current database, especially if you forcibly terminate the program during its execution! Please make one more backup of the current database before you apply this add-on. Well, maybe you should make a copy of the backup file itself, because if you mistakenly choose the Export command, this add-on would modify the backup file as well.
This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software.
This add-on is a false positive reported as a worm by F-Secure. The author of F-Secure promised me that will update its database and put the add-on on white-list, but still didn't. If you go to the www.virustotal.com/en/ site, you will see that it is safe tested by 54 popular anti-virus engines; the only one reporting a worm in it is F-Secure.