Update Location of Files in Database
- MediaMonkey Add-on - by Zvezdan Dimitrijević
This add-on works with MediaMonkey v2.x-4.x. Its purpose is to update serial number of a drive and/or paths of files stored in the database, for example after upgrading hard disk or moving files from/to some network drive with UNC path. This add-on could change the mentioned data stored in the database only, but it could also copy the media files from the old to the new location.
Its main advantages to some another similar scripts are the possibility to update location of files on network drives and the option to specify old and new base paths, e.g. if you want to update c:\Documents & Settings\User\Music\ to d:\Music\.
If you want to discus about this add-on, you could visit its related MediaMonkey forum thread.
This add-on is donationware. I am its sole developer and I worked 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. You could donate as much as you think that is appropriate, any amount would be really appreciated.
US Dollar (USD)
The enhanced version of this add-on, which was previously sent only to donors, is not available nor it is supported by me for now. Please don't post questions and requests for that version in the Forum. And please do not donate if your only reason for doing that is to get the enhanced version!
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 should stay with MM4. Or you could wait for me to port the add-on to MM5, but my interest for that depends only on donations.
Fixed: update when the Old path contains the @ character [MM3+], i.e. the _ % [ characters [MM2].
v1.4 - 2015-06-22
Fixed: many things.
v1.3.3 - 2012-06-12
Fixed: display of old UNC paths on some broken/faulty databases.
v1.3.2 - 2012-06-01
Fixed: update when the old and new paths are same with the same drive letters, but with different drive serial numbers.
v1.3.1 - 2012-02-26
Fixed: result of searching for existing paths from SynchLocation table.
v1.3 - 2012-02-24
Added: Copy files from the old to the new location first option;
Added: update of drive-id/paths in SynchLocation table;
Fixed: update of drive-id/paths in Playlists table;
Fixed: update of locations when only for existing files option is turned on, the old path is the root of a drive and the old and new drives are the ones with the drive letter (i.e. they are not UNC/URL).
v1.2 - 2012-02-13
Added: support for mapped network drives;
Added: support for URL/UPnP old paths in Songs table (cannot be specified as new paths);
Added: selection of the new drive/folder in the tree panel after the update;
Fixed: display of the updated paths in the tracklist;
Fixed: Update and Cancel buttons could be clicked when searching for existing files if the Update paths only for existing files option is turned off.
v1.1.1 - 2012-02-04
Fixed: error with MM3 older than 220.127.116.115.
v1.1 - 2012-01-31
Added: Update paths only for existing files option;
Added: support for MM2;
Fixed: displayed number of existing tracks.
v1.0.1 - 2012-01-25
Fixed: wrong old paths with missing "\" after drive letter [MM3];
For MediaMonkey 3.0 or higher - just double-click on the UpdateLocationOfFiles-xx.mmip file; if you are on Vista or newer Windows and you got "Product installation error", make sure you have MM3 set to "Run as Administrator"; if you downloaded the installation package with IE7 and it changed its extension to a .zip, you should first change it back to a .mmip.
For MediaMonkey 2.x - rename a .mmip extension to a .zip, extract the UpdateLocationOfFiles.vbs file to the MediaMonkey's "Scripts" folder and restart MM program.
After installation of the add-on you will find the new "Update Location of Files in Database..." option in the Tools | Scripts menu. When you choose that option from the menu, you will get opened the add-on's dialog box. After its first start, the options will be set to their default blank/unchecked states; if you change some option in the dialog box and start the update, the settings will be remembered in the MediaMonkey.ini file, so the next opening of the dialog box will show those last settings. The exception is with the Old drive and Old path combo boxes that will be automatically selected with the drive/path of the selected folder in the Tree panel. However, the old drive/path could be set manually in the mentioned dialog box as well.
With the Old drive and Old path combo boxes you should set the old location of files (source) and with the New path text box you should set the new location of files (destination). To be able to do update, both locations should be correctly specified. If your Old/drive path dropdown lists are not filled with drives/paths, that means that your database is empty, in which case this add-on cannot be used - you should have database that contains files if you want to update their location (as the name of the add-on suggests).
The Old drive combo box shows all drives containing media files that are added to the database (Library). When you choose some drive from that combo box, the Old path combo box will be filled with all folders from that drive containing files in the database including all their parent folders until the root of drive. For example, if I have one track in the database which has the path C:\Music\Pink Floyd\Time.mp3, there would be listed 3 items: C:\, C:\Music\ and C:\Music\Pink Floyd\.
With the Old path combo box you are choosing the base folder that you want to update. This means that you will get updated all files from that folder and its sub(-sub)-folders recursively. This also means that you should select the root of the drive in the Old path combo box if you want to update all files from that drive. For example, if I specify C:\Music\, all files which have that on the begin of the path would be updated, like C:\Music\Pink Floyd\Time.mp3, but not file like C:\My Documents\Pink Floyd\Time.mp3 since it has different base folder.
The Old location label shows how many media and playlist files from the database are located in the base folder (and its sub-folders) selected by Old path; also, it shows how many of those files still physically exist at that location.
For example, if my Old location shows "228831 media files + 1329 playlist files, 229920 existing + 240 missing", that means that I have 228831 records about media files and 1329 records containing the information about playlist files stored into the database. The sum of these two numbers is 230160 files and it is equal to the sum of another two numbers (229920 existing + 240 missing). In another words, of all my media and playlist files referenced in the database I have 240 files that are psychically missing on the location that I have specified with the Old path. It is not displayed how many media or playlist files are existing/missing individually, but only for their sum.
By the way, the records containing information about playlist files are not the same as the records about playlists. The records of playlists could contain the information about the imported playlists files, but if you have playlists that are created by yourself, i.e. they are not created by import from playlist files, then such playlists will not contain the information about playlist files.
In the New path text box you should specify the base folder which would replace the old one after applied the Update option. For example, if the Old path is "c:\Music\" and New path is "d:\Media\My Music\" then all files in the database that have "c:\Music\" on the begin of path will be updated to "d:\Media\My Music\". You could type the new path on keyboard or you could click on the "..." button to choose some existing drive/folder.
Similarly to the Old location, the New location label shows how many media and playlist files from the database physically exist at the base folder (and its sub-folders) specified by New path.
When you change old or new path, the add-on will start checking for existence of the files at specified locations which could be time consuming, especially with the large databases and/or media files located on network drives. You don't need to wait for the add-on to finish searching for files since it is executed in another thread just for checking purpose and will be canceled if you click on the Update button. However, it is recommended to wait for add-on to finish with that searching because it would display how many files from the database are found on the new specified location.
If the option Copy files from the old to the new location first is turned on, then the files will be physically copied before updating of the database; otherwise, only the data about the location of files in the database will be modified. If you plan to use this option, it is recommended that you temporarily turn off the File Monitor option in the Options dialog box (if you have it already enabled) before you open the add-on's dialog box.
Only the media/playlist files previously stored in the database could be copied. If you have some extra files beside of the media files in their containing folders, e.g. bitmaps with covers or some txt/html files, they would not be copied using the mentioned option; in that case you should use your preferred program for backup to copy files from the old to the new location before you apply this add-on.
If you want to update location in database only for files that exist at the new specified location, you should turn on the option Update paths in database only for files that exist at new location. In that case you should wait for the add-on to finish with search for files before you click on the Update button. However, if you turn that option off, you could click on the Update button immediately after you specify the old and new paths.
The Backup button allows you to save a copy of the current (active) database to some safe place. And finally, when all previously mentioned options are set as wanted, the click on the Update button will start the update action (which could take some time). After the update is finished, the add-on could try to refresh the affected paths in the main filelist, but sometimes that could be unsuccessful because of some limitations in the program itself, in which case the simple restart of the program would help. The paths in the Now Playing panel will be updated as well if the affected files were previously already stored in the database.
This add-on is mostly useful if you have similar folder structure on the old and new drives, i.e. when the old and new paths have different only base folders. If you have moved media files to the new hard disk using different filenames and/or folder structure than it is stored in the database, then you could try Restore/Synchronize Database add-on instead since it can transfer data even in such situations, but it is much slower.
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 a backup of the current database before you apply this add-on.
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.