Export/Import Playlists
Version 5.3.6
(former Export M3Us/Create Playlists for Child Nodes)
- MediaMonkey Add-on -

by Zvezdan Dimitrijević

This is information about the new enhanced version of Export/Import Playlists add-on for MediaMonkey v2.x-4.x. The old version of this add-on was already one of the largest MediaMonkeys add-ons that is the most flexible for exporting playlist files and creating playlists. However, the new version is even 50% larger and it has added several very useful options, among others it allows import of M3U playlist files to MediaMonkey playlists with searching for similar media files already added to the Library which enables transfer of playlists to another computer.

Donation:

The previous vesion of the add-on has a free access to download, but the new enhanced version is available only to those who donate to me using PayPal because I have spent too much of my time developing it. Just leave me a note about your e-mail address, if it is different than the one that you have registered at PayPal, since I am sending this version of the add-on using e-mail attachment.

If you didn't get my e-mail for a day or two after your donation, you could check your Spam folder first and, if you cannot find it in there, please send me an e-mail with the information about donation to: . Actually, if you are a GMail user, I recommend that you put my e-mail address to your Contact list before you make donation, so that GMail will not treat my e-mail sent to you as a spam. Thanks in advance!

Euro (EUR) US Dollar (USD)

Compatibility

This add-on doesn't work with MediaMonkey v5! Actually, none add-on made for some previous version of program could work with MM5, either by me or by another authors, 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.

If you decide to stay with MM4, rest assured that I will still improve and support the add-on as long as there is an interest for it.

What is new

v5.4 - 2018-06-11

v5.3.6 - 2017-02-22

v5.3.5 - 2017-01-24

v5.3.4 - 2016-10-02

v5.3.3 - 2016-04-21

v5.3.2 - 2015-11-11

v5.3.1 - 2015-10-31

v5.3 - 2015-10-08

v5.2 - 2015-06-06

v5.1 - 2015-01-21

v5.0 - 2014-05-14

Installation


Usage

Using this add-on is very similar to the older Export/Create Playlists version. This add-on has three main modes of work: manual and automatic export and manual import. The manual operations could be started from the menu, while the automatic mode is working in the background on a timely basis that is set in the Options dialog box.

Menu
The commands of this add-on are located in the Export/Import Playlists sub-menu in the File menu and the context menus of the Media Tree, the main filelist and Now Playing panel.

ExportImportPlaylists-5.3-2

First of all, you need to understand the difference between playlist files and MediaMonkey playlists (or shorter "playlists"): the playlist files are the lists of media files stored in M3U, ASX or XSPF files, while the playlists are the lists of media files stored in the MediaMonkey database and visually represented inside of the Playlists folder of the Media Tree.

The Export/Import Playlists add-on could export list of media files to the playlist file(s) using some of the Export commands from its menu, or it could import list of media files to the MM playlist(s) using some of the Import commands from the menu. The Export commands could be seen as an extension to the built-in Send to / M3U/XSPF playlist menu command, while the Import commands could be seen as some kind of extension to the built-in Send to / Playlist menu command.

The commands in the File menu and the context menu of the Media Tree could be applied on the node selected in the tree panel, using them you will get exported/imported all media files of the selected node and/or its sub-nodes (depending of your settings in the add-on's Options dialog box). The following commands are available:
  • Export to M3U/ASX/XSPF Playlist... - choose this command if you want to export playlist file that will reference all media files of the selected node displayed in the main filelist, after that you should specify the target playlist file on the disk;

  • Export As Playlist File to Selected Folder - if you want to export playlist file with all media files of the selected node displayed in the filelist to the same folder with media files; this command is enabled only for nodes within Location and My Computer branches of the Media Tree;

  • Export to Playlist File & Copy Media Files... - if you want to export playlist file that will reference all media files of the selected node displayed in the main filelist (which is the same as with the Export to M3U/ASX/XSPF Playlist... command), and to copy these media files; after you choose this command, you should specify the target playlist file on the disk, while the target folder(s) for media files depends of the previously set Replace option in the Options dialog box; the path references in the exported playlist files will be for the copied media files, unlike the other non-Copy commands in the menu which export the playlist files containing paths to the media files as they are displayed in the filelist (unless you use Replace/With options);

  • Export Child Nodes to Playlist Files... - if you want to export playlist files of the selected node and/or some or all sub-nodes of the selected node (depending of the Options settings); after you choose this command, you should specify the parent target folder on the disk;

  • Export Child Nodes As Playlist Files to Same Folders - if you want to export playlist files of the selected node and/or some or all sub-nodes of the selected node (depending of the Options settings) to the same folders with media files; this command is enabled only for nodes within Location and My Computer branches of the Media Tree;

  • Export Child Nodes to Playlist Files & Copy Media Files... - if you want to export playlist files and to copy media files of the selected node and/or some or all sub-nodes of the selected node (depending of the Options settings); after you choose this command, you should specify the base target folder for playlist files, while the target folders for media files depend of the previously set Replace option in the Options dialog box; the path references in the exported playlist files will be for the copied media files, similarly to the Export to Playlist File & Copy Media Files... command;

  • Export M3U Playlists from Child Nodes... - if you want to export M3U files from some or all sub-nodes of the selected node (depending of the Options settings); after you choose this command, you should specify the parent target folder on the disk; this command is enabled only for nodes within My Computer branch of the Media Tree, but you need to turn on the Show M3U playlists in My Computer nodes option on the Library / Appearance sheet in the Options dialog box; the difference between using this command and Export Child Nodes to Playlist Files... is that with this one you will get exported only M3U sub-nodes of the selected node, while with the second one you will get exported all sub-nodes, both M3U and standard folder nodes;

  • Export M3U Playlists in Child Nodes to Same Folders - if you want to export M3U files from some or all sub-nodes of the selected node (depending of the Options settings) to the same folders with M3U files, e.g. if you want to save existing M3U files as ASX or XSPF, or if you want to convert M3U files from the simple format to the extended one (or vice versa); this command is enabled only for nodes within My Computer branch of the Media Tree, but you need to turn on the mentioned Show M3U playlists in My Computer nodes option; unfortunately MediaMonkey doesn't display ASX and XSPF files as nodes inside of My Computer, so it is not possible to convert from ASX or XSPF format to some another; the difference with this command and Export Child Nodes As Playlist Files to Same Folders is similar as with the previous command, i.e. with this command you will get exported only M3U sub-nodes of the selected node, while with the second one you will get exported all sub-nodes, both M3U and standard folder nodes;

  • Import to Playlist - choose this command if you want to import all media files of the selected node displayed in the main filelist into the selected or newly created playlist that would be located in the Playlists branch of the Media Tree, after that you should select/specify the target playlist;

  • Import Child Nodes to Playlists - if you want to import media files of the selected node and/or some or all sub-nodes of the selected node (depending of the Options settings) into the playlists that would be stored in the Playlists branch of the Media Tree; after you choose this command, you should specify the parent target playlist;

  • Import M3U Playlists from Child Nodes - if you want to import media files from some or all M3U sub-nodes of the selected node (depending of the Options settings) into the playlists that would be stored in the Playlists branch; after you choose this command, you should specify the parent target playlist; this command is enabled only for nodes within My Computer branch of the Media Tree, but you need to turn on the mentioned Show M3U playlists in My Computer nodes option; the difference with this command and Import Child Nodes to Playlists is that with this command you will get imported only M3U sub-nodes of the selected node, while with the second one you will get imported all sub-nodes, both M3U and standard folder nodes;

  • Options - when you choose this command you will get opened the Export/Import Playlists Options dialog box which contains some options that affect the behavior of the add-on.

    ExportImportPlaylists-5.3-3

    The context menu of the main filelist and Now Playing panel contains a reduced set of commands from the File menu / the context menu of the Media Tree, and these commands could export/import only files selected in the filelist/Now Playing panel. The following commands are available:
  • Export to M3U/ASX/XSPF Playlist... - choose this command if you want to export playlist file that will reference media files selected in the main filelist/Now Playing panel;

  • Export to Playlist File & Copy Media Files... - choose it if you want to export playlist file that will reference media files selected in the main filelist//Now Playing panel and to copy these media files;

  • Import to Playlist - choose this command if you want to import media files selected in the main filelist/Now Playing panel into the selected or newly created playlist that would be located in the Playlists branch of the Media Tree.

  • Options - when you choose this command you will get opened the Export/Import Playlists Options dialog box which contains some options that affect the behavior of the add-on.

    ExportImportPlaylists-5.3

    Export/Import Playlists for Child Nodes Options
    The add-on settings are located in the Options dialog box which you could get: 1) if you choose any of the mentioned Options commands in the Export/Import Playlists sub-menu of the File menu and the context menus of the Media Tree, the main filelist and Now Playing panel, or 2) if you select Export/Import Playlists add-on in the Tools / Extensions dialog box and click on the Options button, or 3) if you select the General / Export/Import Playlists sheet in the Tools / Options dialog box.

    Many of the settings in the Options dialog box are common for all three main modes of work: manual and automatic export and manual import. It will be noted if some option is applicable only for one specific mode.

    ExportImportPlaylists-5.3-4

    Export/Import Source
    In the first group of controls on that dialog we could specify what we want to export/import if we choose any command from the menu that affects the sub-nodes, e.g. Export Child Nodes to Playlist Files... or any other command that contains "Child Nodes" in its name. If the Selected node option is turned off then only sub-nodes of the selected node would be exported/imported, while if it is turned on the selected node would be exported/imported as well. With the next 3 options we could choose which levels of sub-nodes we want to export/import: the first level, the last level or all levels.

    Let say, for example, that I have the following tree branch and that I have selected the Rock node: If I have ticked First level of sub-nodes I would get exported only the "Pink Floyd" playlist file. If I have ticked Last level of sub-nodes I would get only "Dark Side of the Moon" and "Wish You Were Here" playlist files. Finally, if I have ticked All levels of sub-nodes I would get "Pink Floyd", "Dark Side of the Moon" and "Wish You Were Here" playlist files. Of course, if I have ticked Selected node then I would get the "Rock" playlist file as well, together with the previously mentioned playlist files. The previous examples are about export, but very same principle is applied on import.

    Export/Import Destination
    With the second group of options we could specify where and how we want to store the playlist files/playlists: to the nested (hierarchically structured) folders/playlists or to the single folder/playlist. If we select nested folders/playlists we could also choose if we want to store playlist files/playlists to the folders/playlists with the same names as the source folders or to their parent folders/playlists.

    The settings in this group have only effect with the "Child Nodes" commands with the "..." on the end of a name, e.g. Export Child Nodes to Playlist Files..., i.e. the commands that allow us to specify some arbitrary target folder (on export). However, those settings are ignored with the "Child Nodes" commands with the "to Same Folders" text on the end of a name, e.g. Export Child Nodes As Playlist Files to Same Folders, since in that case the playlist files are always stored to the same folders with the media files.

    Here is the same example of the "Rock" branch with the previously ticked All levels of sub-nodes option. If I have both To nested folders/plists and Parent level turned on, I would get "Pink Floyd" playlist file in the specified target folder and "Dark Side of the Moon" and "Wish You Were Here" playlist files in the "Pink Floyd" sub-folder of that specified folder. If I have Parent level turned off, I would get "Pink Floyd" playlist file in the "Pink Floyd" sub-folder of the specified folder, "Dark Side of the Moon" playlist file in the "Dark Side of the Moon" sub-folder of the "Pink Floyd" folder and "Wish You Were Here" playlist file in the "Wish You Were Here" sub-folder of the "Pink Floyd" folder.

    Finally, If I have To single folder/playlist and Join folder levels turned on with the " - " specified as a separator, I would get all files in the specified folder, i.e. I would get "Pink Floyd", "Pink Floyd - Dark Side of the Moon" and "Pink Floyd - Wish You Were Here" playlist files in the same folder.

    The next command in this group has two meanings depending of the previous ones. If we choose To nested folders/plists, it will be named as Split folder levels which allows export/import with captions of M3U nodes in My Computer branch parsed into corresponding nested levels of folders/playlists using specified separator (which is kind of opposite to saving playlists to the single folder using the same separator); the Split folder levels option doesn't parse captions of regular folders, but only captions of M3U nodes.

    If we choose To single folder/playlist, the same command will be named as Join folder levels which allows export to the single folder using captions of the current node and all its parent nodes. However, if it is turned off, only captions of the corresponding nodes will be used. For example, if I have the previously mentioned tree branch and if I choose To single folder/playlist, with the Join folder levels option turned off I would get: "Dark Side of the Moon.m3u" and "Wish You Were Here.m3u" files, but if I turn it on I would get "Pink Floyd - Dark Side of the Moon.m3u" and "Pink Floyd - Wish You Were Here.m3u" files.

    Those last examples are such that if I have the Selected node option turned off. However, if I turn that option on, I would get one additional, "Rock" sub-folder in the specified folder and inside of it there would be created folders mentioned in the previous two examples with To nested folders/plists option. If I choose To single folder/playlist with the Selected node option turned on, then I would get "Rock - Pink Floyd", "Rock - Pink Floyd - Dark Side of the Moon" and "Rock - Pink Floyd - Wish You Were Here" playlist files in the specified folder (the "Rock - " is added on the begin of the previous To single folder/playlist examples).

    As it is the case with many other commands from the Options dialog box, the ones from this group are common for both export and import. However, there is one important thing to know about the Parent level command: it is kind of opposite between export and import. For example, if I export some sub-nodes of the Playlists branch to some folder on the disk with the Parent level turned on, I need to import back the exported folders into the Playlists branch with the Parent level turned off if I want to get the same structure of playlists as it was on the begin; the similar thing apply if I export playlists with that option turned off when I need to import the exported folders with that option turned on.

    Export File Format
    The next two group of commands are applicable only on export. With the third group of options we could specify the format of the exported playlist files: .m3u, .asx or .xspf. If we choose export to the M3U format, with the #EXT option we could further specify the format of the exported .m3u files. If that option is turned off, we would get the so-called Simple M3U format, i.e. .m3u files will have only list of paths to the media files, e.g.:

    c:\My Music\Rock\Pink Floyd\Dark Side of the Moon\01 - Speak to Me; Breathe in the Air.mp3
    c:\My Music\Rock\Pink Floyd\Dark Side of the Moon\02 - On the Run.mp3

    However, if the #EXT option is turned on, we would get the Extended M3U format, with the additional information about each included media file which helps faster display of the added/opened playlists in many players, but some another players don't support such extended M3U format:

    #EXTM3U
    #EXTINF:240,Pink Floyd - Speak to Me; Breathe in the Air
    c:\My Music\Rock\Pink Floyd\Dark Side of the Moon\01 - Speak to Me; Breathe in the Air.mp3
    #EXTINF:213,Pink Floyd - On the Run
    c:\My Music\Rock\Pink Floyd\Dark Side of the Moon\02 - On the Run.mp3

    The fourth group of options determines encoding format of the exported playlist files: ANSI, UTF-8 and Unicode (UTF-16). You should choose UTF-8 or Unicode if you have non-ANSI characters in your paths of audio files, e.g. Cyrillic, but you should first check if such files are supported with your media player. If you choose UTF-8 format you could specify if playlist files should have BOM characters. A byte-order mark (BOM) is the invisible Unicode character placed at the begin of the file, it is used as a marker to indicate that text is encoded in UTF-8; you should uncheck this option if you have some player that cannot read files with a BOM. By the way, if you modify some playlist file in UTF-8 format using Notepad, it will save that file with added BOM always.

    ExportImportPlaylists-5.3-5

    Skip/Exclude/Remove
    The next group of options determines what we want to skip/exclude from the export/import. We could skip: empty playlists (when the source folders don't contain any available media file), M3U nodes from My Computer branch of the tree, "All" nodes from My Computer, Location and Magic Nodes branches, Autoplaylists from the Playlists branch and nodes/folders with the specified name(s). The names of folders could be specified using regular expressions if that option is turned on, but even if we don't use regular expressions we could specify several names of nodes/folders for skipping using the vertical line "|" as a separator.

    If some named folder is skipped during the export, then all its sub-folders would be skipped as well. The sub-nodes of "All" nodes from the Location branch are skipped by design even if you turn off skipping of "All" nodes. The M3U and "All" nodes from My Computer branch don't have sub-nodes anyway. The Skip export/import of - M3U nodes option is ignored if we choose Export M3U Playlists from Child Nodes or Export M3U Playlists in Child Nodes to Same Folders commands from the menu. The last (rightmost) level of "All" nodes in My Computer branch could be skipped using the SkipLastAllNodes INI key to get consistent behavior with the "All" nodes from the Location branch which will be explained later in the Additional INI keys section. Also, the export of sub-nodes of Autoplaylists depends of the SkipAutoPlsSubNodes INI key which will be explained later.

    The exported playlist files and imported playlists could contain only the media files that are displayed in the filelist for each corresponding source node. However, sometimes those displayed media files could be unavailable or inaccessible, e.g. after upgrading the hard disk. With the Exclude unavailable files option we could specify that such media files should be omitted from the playlists during the export/import. However, if we turn this option off, the unavailable files will be tested against ones already entered in the Library during import, as it is explained in the Importing M3U files section.

    The last command in this group is Delete all playlist files in target folder(s) before each export and it could be used to remove all playlist files from the specified target folder and/or its sub-folders recursively (depending of the other settings in the Options dialog box). If you choose To nested folders/plists, the playlist files from the specified target folder and all its sub-folders will be removed recursively, but if you choose To single folder/playlist only the playlist files in the specified target folder will be removed. If this option is turned on, the playlists files will be removed on each export, automatic or manual, so please be extremely careful when using it!

    This new option has similar effect as the existing Delete exported file if its playlist is deleted option (more about it later), but there are several important differences: the new one deletes absolutely all playlist files, it works on each type of export, manual or automatic (excluding automatic export using When any playlist is added or modified), and it works with all versions of MediaMonkey, while the older option deletes only playlist file which has the corresponding playlist just deleted from the Media Tree, also that one works only if the When any playlist is added or modified option is turned on and it is limited on the 4.1.0.1648 version of MediaMonkey or newer.

    ExportImportPlaylists-5.3-6

    Format of Paths in Playlist Files (and Destination for Copied Media Files)
    The next group of options determines how the paths of media files will be stored in the playlist files on the export, but some of them are applicable during import as well. Also, some options could be used to set the mapping of the media files to the copied files when using the "... Copy Media Files" commands from the menu, i.e. to set the destination folders for copied media files.

    With the Relative option we could choose if we want paths in playlist files in relative or absolute format. The absolute paths represents the full paths to the media files as you could see from the previous examples for the Extended .m3u format. The relative paths represents paths of the media files relative to the path of the playlist file. For example, if I choose export to the parent level of folders, I would get "Dark Side of the Moon" playlist file with relative paths as:
    Dark Side of the Moon\01 - Speak to Me; Breathe in the Air.mp3
    Dark Side of the Moon\02 - On the Run.mp3

    The relative paths could help if you have different paths on the source and destination computers/players (e.g. different absolute paths c:\My Music\Rock\Pink Floyd\Dark Side of the Moon\02 - On the Run.mp3 on the computer and e:\Music\Rock\Pink Floyd\Dark Side of the Moon\02 - On the Run.mp3 on the player would have the same relative path Dark Side of the Moon\02 - On the Run.mp3), but some players don't support them, so you should check on first if you could use that option. You should export playlist files to the same drive with media files, otherwise the relative paths cannot be determined and the absolute paths would be exported instead.

    With the URL (file://) option we could choose another format for paths in playlist files. If I turn that option on, with the previous example I would get:

    file:///c:/My%20Music/Rock/Pink%20Floyd/Dark%20Side%20of%20the%20Moon/01%20-%20Speak%20to%20Me%3B%20Breathe%20in%20the%20Air.mp3
    file:///c:/My%20Music/Rock/Pink%20Floyd/Dark%20Side%20of%20the%20Moon/02%20-%20On%20the%20Run.mp3

    There is a small number of players that require playlist files with such paths, so most probably you wouldn't need that option.

    With the Short (8.3) option we could get paths in the old DOS format that are required on some players. That option works only with the existing files, so the Exclude unavailable files option should be turned on for it. Also, it is not possible to use URL and Short paths at the same time. If this option is turned on then all folders/filenames will be stored using such short form. For example, with the following full path:
    D:\Music FLAC\Kurt Masur; New York Philharmonic Orchestra\Dvořák; Symphony #9, Slavonic Dances\01 Dvořák_ Symphony #9 In E Minor, O.flac

    we would get:
    D:\MUSICF~1\KURTMA~1\DVOK_S~1\01DVOK~1.FLA

    However, some players like Logitech Media Server (LMS) require short form only for folders/filenames with non-ANSI characters, like this:
    D:\Music FLAC\Kurt Masur; New York Philharmonic Orchestra\DVOK_S~1\01DVOK~1.FLA

    So, in that case to get such paths you should turn on ANSI file format and turn off Short (8.3) paths.

    With the Unix ("/", LF) option we could also specify format for paths in the playlist files. If your media player has some Unix variation as Linux for its OS, you should turn that option on. In that case the paths of media files will have the "/" separator between folders instead of "\" and the new lines will be represented with the LF character instead of CR+LF as it is in Windows.

    With the Replace and With options we could replace parts of paths with another string in almost same way as we could do it in e.g. Notepad using its Replace option (well, maybe as with EditPad or similar advanced text editor which also supports Regular expressions). Within the Replace text box you could specify string which you want to replace and with the second, With text box you could specify string for replacement. You could also use the "..." buttons to specify paths, but only if you want to replace one folder with some another. For example, "c:\Documents and Settings\My Name\My Music\" could be replaced with "e:\Multimedia\Music\".

    You could use the "..." buttons on the right side of the Replace and With combo boxes to select the wanted folders, but you could also type paths or their patterns manually. In that case it is possible to specify two or more paths that will be replaced with the same number of another paths using " (double quote) as a separator between paths (only when the Use mask for specifying paths option is turned off), applicable both for export and import.

    For example, if you enter Replace: i:\music\artists\"i:\music\soundtrack\ and With: TF1:\music\"TF2:\music\ then you will get replaced i:\music\artists\ with TF1:\music\ and i:\music\soundtrack\ will be replaced with TF2:\music\ (although you could write it as Replace: "i:\music\artists\", "i:\music\soundtrack\" and With: "TF1:\music\", "TF2:\music\").

    If you want to replace two or more paths with the single path then use the | separator in the Replace string, e.g. if you enter Replace: i:\music\artists\"i:\music\soundtrack\|I:\Music\Genre\ and With: TF1:\music\"TF2:\music\ then you will get replaced both i:\music\soundtrack\ and I:\Music\Genre\ paths with TF2:\music\.

    With the Use Regular expressions for specifying paths/folders option we could specify even more complex patterns for replacement, e.g. we could replace several different paths with the single one at once. For example, the "^.+\\(?=[^\\]+\.[^\.\\]+$)" string is the expression which represents any full path, excluding the filename and the extension. So, using that expression, if you leave the With text box empty, all folders would be removed from the paths, saving only the filenames and extensions into the playlist files, or you could enter "e:\Music\" in the With text box and all folders would be replaced with that single one. Although, you should turn on the Regular expressions only if you know how to use them.

    The Use Regular expressions option has the effect on both Replace - Paths in playlist files and Skip export/import of - Folders options, i.e. you cannot use the Regular expressions for the first option and don't use them for the second option, and vice versa.

    The Use mask for specifying paths option allows using of MediaMonkey's masks for replacing paths in playlist files, both for export and import, but it requires MM v4.1.0.1662 or higher.

    The Replace and With options could be used on import of files as well, not only on export, which is useful if the paths of media files in the imported M3U nodes don't point to the exact drives/folders (more about it in the guide How to: Import M3U files).

    The Replace option, together with the With, Use Regular expressions and/or Use mask for specifying paths options, could be used to set a mapping of the media files to the copied files when using the "... Copy Media Files" commands from the menu, i.e. to set the destination folders for copied media files.

    The same destination folders for the copied files will be used in the path references in the playlist files, which is a limiting factor if you plan to copy media files to a portable media player whose internal software has a different drive letter than Windows. In that case you could try with the relative paths. The guide How to: Export playlist files and copy related media files to different folders contains one example how to use the Replace option when copying media files.

    ExportImportPlaylists-5.3-7

    Automatic Export of Playlists
    The next group of remaining controls on the Options dialog box is used only for automatic export of the specified MM playlist(s) to the playlist files. We could choose when the playlists should be exported: On startup, On shutdown and/or Every xx minute(s).

    With the MM v4.1.0.1648 or higher it is also possible to automatically export MM playlists from the Playlists branch whenever they are added, renamed, moved or modified (e.g. some file is added/removed to/from the playlist or you changed order of files within playlist) using the When any playlist is added or modified option. If that option is turned on, then it is possible to use the next Delete exported file if its playlist is deleted option as well. It allows automatic removal of the exported playlist files when the corresponding MM playlists are removed from the Playlists branch.

    We could choose a playlist which should be automatically exported (altogether with its sub-playlists) using the From dropdown list. Only playlists from the first level in the Playlists branch could be directly selected from that list, but some nested playlist could be also specified using "\" as a separator between sub-levels. It is even possible to specify the name of some nested playlist without its full path, but only if that name is unique. Within the To text box we should specify the folder where we want to get exported playlist file(s). Its usage is similar to the target folder specified after any "Child Nodes" command is chosen from the menu for the manual export.

    With the Create new child folder with a dated name option we could specify if we want automatically exported playlist files in the separated folders with dates in their names which would be within the folder specified in the To text box. If the For every auto-export option is turned on, the dated folders with the playlist files would be created whenever the condition for automatic export is satisfied, e.g. if Every xx minutes is chosen then every specified minutes would be created a new folder. If the Once in a day option is turned on, the folders with dates in their names would be created only once each day.

    How to: Export static playlists to the custom-defined structure of folders

    This add-on has only two possibilities for target folders of the exported playlist files: 1) it could store them all in a single folder, or 2) it could export them to the hierarchically organized folders using the same structure as the sub-nodes of the selected node. So, if you select a node for export which doesn't have sub-nodes, you will get only one playlist file corresponding to that node, even if you choose To nested folders/plists option.

    However, if you want to get the playlist files exported to a different folder structure than you have it with the existing nodes, there is a workaround for that using Magic Nodes add-on. Let say that you want to export one node from the Playlists branch of the Media Tree to the multiple playlist files saved in the d:\Playlists\<Album Artist>\<Album> structure of folders:

  • install Magic Nodes add-on;
  • open Edit / Magic Nodes / Mask Settings dialog box and click the New button;
  • type "Export Playlist|Filter:<Playlist> = 'Name_of_playlist'\<Album artist>\<Album>" in the Mask text box (without surrounding quotes, just enter the name of your playlist node that you want to export instead of Name_of_playlist);
  • click the Add button on the bottom of the dialog box >> you will get the new "Export Playlist" node inside the Magic Nodes branch of the Media Tree;
  • open the File / Export/Import Playlists / Options dialog box;
  • turn off the Selected node option;
  • select the All levels of sub-nodes option;
  • select the To nested folders/plists option;
  • confirm settings with the OK button;
  • right-click the "Export Playlist" node;
  • choose Export Child Nodes to Playlist Files from the popup menu;
  • specify d:\Playlists as the target base folder and confirm export with the OK button.

    The references to the media files inside of the playlist files will have the same paths as you have them in your Library. However, you could use some of the Replace options in the Export/Import Playlists Options dialog box to change them. For example, you could turn on the option Use mask for specifying paths and type d:\Music\<Album Artist>\<Album>\<Filename>.<Extension> in the Replace text box if you have a copy of media files in the target d:\Music\* sub-folders.

    How to: Export playlist files and copy related media files to different folders

    Here are the three important things that you should know about this add-on:

    1. you could select the target base folder for playlist files using the Select Folder dialog box that you get after you choose export with any "Child Nodes" command from the menu;

    2. you could set the structure of the target (sub-)folder(s) for playlists files that will be inside the selected base folder using the To nested folders and To single folder options in the Options dialog box;

    3. if you use any "Copy Media Files" command from the menu, you could set the folder structure of the target media files using the Replace options from the Options dialog box.

    So, when you use some of the "Copy Media Files" commands from the menu, if you have the Replace option turned off in the Options dialog box, the media files will be copied to the same folder(s) with the exported playlist file(s).

    However, if you want to copy media files to the deferent folders than playlist files, you could use the Replace option, together with the With, Use Regular expressions and/or Use mask for specifying paths options, to set a mapping of the media files to the copied files, i.e. to set the destination folders for copied media files. Let say that you want to copy all media files contained in one node of the Media Tree to the d:\Music\<Album Artist>\<Album> folders:

  • open the File / Export/Import Playlists / Options dialog box;
  • turn on the Replace option;
  • turn on the Use mask for specifying paths option;
  • type d:\Music\<Album Artist>\<Album>\<Filename>.<Extension> in the Replace text box;
  • confirm settings with the OK button;
  • right-click a node in the Media Tree which you want to export;
  • choose Export to Playlist File & Copy Media Files from the popup menu;
  • click the Yes button if you get the confirmation dialog box;
  • specify d:\Playlists\whatever.m3u as the target playlist file and confirm export with the OK button.

    After that, you will get the playlist file in the d:\Playlists folder and copied media files in the sub-folders of d:\Music. The references to the media files inside the playlist file will have the same d:\Music base folder. However, if you copied the media files to a portable media player whose internal software has a different drive letter than d:, you could try the same process but with the enabled relative paths using the Relative option.

    How to: Update location of media files in M3U playlist files

    When you upgrade your hard disk and/or transfer your media and playlist files to the new disk, if you decide to use different drive letter and/or base folder, you will get the playlist files with wrong references to the media files and those playlist files will be unplayable. However, you could update location of media files in these playlist files if they are in M3U format using this add-on:

  • turn on the Show M3U playlists in My Computer nodes option on the Library / Appearance sheet in the Tools / Options dialog box and confirm setting with OK button;
  • open the File / Export/Import Playlists / Options dialog box;
  • select the All levels of sub-nodes option;
  • select M3U option;
  • turn on/off #EXT and select ANSI, UTF-8 or Unicode option, depending of the format of playlist files that you prefer, e.g. they could be set as they were before;
  • turn on the Replace option and specify the base folder that contains media files on your old disk, e.g. c:\Documents and Settings\My Name\My Music\;
  • specify the base folder having media files on your new disk in the With combo box, e.g. e:\Multimedia\Music\;
  • confirm settings with OK button;
  • select the base folder that contains playlist files on your new disk within My Computer branch of the Media Tree;
  • choose Export M3U Playlists in Child Nodes to Same Folders from the popup menu.

    How to: Change format of M3U playlist files

    If you want to save existing M3U files as ASX or XSPF, or if you want to convert M3U files from the simple format to the extended one (or vice versa), or if you want to change the relative paths of media files referenced in M3U files to the absolute ones (or vice versa), or ..., you could use the similar approach as in the previous section:

  • turn on the Show M3U playlists in My Computer nodes option on the Library / Appearance sheet in the Tools / Options dialog box and confirm setting with OK button;
  • open the File / Export/Import Playlists / Options dialog box;
  • select the All levels of sub-nodes option;
  • select M3U, ASX or XSPF option, turn on/off #EXT and select ANSI, UTF-8 or Unicode option, depending of the format of playlist files that you want to get;
  • turn on/off Relative, URL, Short or Unix option, depending of the format of paths in playlist files that you want to get;
  • confirm settings with OK button;
  • select the base folder that contains playlist files on your disk within My Computer branch of the Media Tree;
  • choose Export M3U Playlists in Child Nodes to Same Folders from the popup menu.

    How to: Transfer playlists to another computer

    Here is the short guide how to transfer MediaMonkey's playlists from one to another computer. Firstly, you should know that you could use this add-on to transfer only static playlists, as it is mentioned in the Limitations section. Secondly, you need to have MediaMonkey and this add-on installed on both computers. Thirdly, the media files on both computers should be within the similar folder structure, only their base folders could be different (e.g. files could be stored on the first computer in "c:\Documents and Settings\My Name\My Music\" and on the second "e:\Music\").

  • Open the Options dialog box using File / Export/Import Playlists menu on the first, source computer;
  • turn off Selected node, select All levels of sub-nodes and To nested folders/plists, turn ON Parent level, select M3U, turn off Empty playlists, turn on Autoplaylists and confirm settings with OK button;
  • select the source parent playlist in the Playlists branch of the Media Tree whose sub-playlists you want to transfer (if you select Playlists node you will get exported all sub-playlists);
  • choose Export Child Nodes to Playlists from the popup menu;
  • select some empty temporary folder on the removable drive;
  • confirm choice with OK button and wait the add-on to finish the export;
  • detach the removable drive from the first computer and attach it on the second one;
  • open the Options dialog box using File / Export/Import Playlists menu on the second, target computer;
  • turn off Selected node, select All levels of sub-nodes and To nested folders/plists, turn OFF Parent level, turn off Split folder levels, turn off Empty playlists;
  • turn on Replace if your base folders with media files are different between computers, then in the next combo box specify the base folder with media files on the first computer and in the With combo box specify the base folder on the second computer;
  • confirm settings with OK button;
  • select the previously specified temporary folder on the removable drive in My Computer branch of the Media Tree;
  • choose Import M3U Playlists from Child Nodes from the popup menu;
  • select the target parent playlist from its sub-menu (if you choose Add to Playlists the imported playlists will be direct children in the Playlists branch).

    As you could see, the most settings are similar on both computers, with one important difference: on the first, source computer you need to turn Parent level option on and on the second, target computer you need to turn that option off.

    How to: Import M3U files

    Here is a more detailed explanation how you could use this version of the add-on to import M3U files into MediaMonkey playlists.

    First of all, you need to have the Media Tree displayed and to turn on the option Show M3U playlists in My Computer nodes on the Appearance page of the Options dialog box if it is unchecked. Then you should set accordingly the related options on the Export/Import Playlists page in the Options dialog box. For example, you should choose the All level of sub-nodes option if you want to import M3U files that are located in the nested folders, also turn on the To nested folders/playlists option for the same reason.

    You should turn on the Parent level option ONLY if you want to store files of your M3U playlist in the parent playlists of the corresponding M3U playlist files. However, if you want to get the same structure and the content of the playlists as they are in the corresponding M3U files, then you should have that option turned off. Let say, for example, that I have the following tree branch and that I have selected the Rock node in the Media Tree:
    If I have ticked the Parent level check box, after choosing the Export/Import Playlists / Import M3U Playlists for Child Nodes command and selecting the target playlist, e.g. "Test", I will get this structure inside of that playlist:
    The Pink Floyd playlist will contain all media files referenced in both the "Dark Side of the Moon.m3u" and "Wish You Were Here.m3u" files.

    However, if I turn the Parent level option off and choose the same menu command, I will get this structure in the Playlists branch:
    Here the "Dark Side of the Moon" playlist will contain the media files referenced in the "Dark Side of the Moon.m3u" file and "Wish You Were Here" playlist will contain files from the "Wish You Were Here.m3u" file. Such behaviour is something that is mostly expected and wanted, so in most cases you should have the Parent level check box turned off.

    If you have all M3U playlists stored in a single folder with playlist levels represented in names of M3U files separated with the specified separator, then you should turn on the Split folder levels option as well. For example, the name of the "Rock - Pink Floyd - Dark Side of the Moon.m3u" playlist file could be parsed using " - " separator to "Rock" playlist with "Pink Floyd" sub-playlist and "Dark Side of the Moon" sub-sub-playlist.

    If you have moved all media files from one location to another so that their references in M3U files are incorrect, then you could try Replace - Paths in playlist files option in the Options dialog box. For example, if your old paths have this base folder:
    c:\My Music\
    and you have moved files to the next base folder:
    f:\Music\
    then you should specify these two paths in the Replace: and With: text boxes. If the files physically exist at the newly specified location, then their tags will be entered correctly to the Library after import, otherwise you will get empty records with the Path information only (you could change this behavior modifying the AddFileIfIsntInDBMode key in the Ini file). Although the option is called Replace - Paths in playlist files, the referenced paths are not directly replaced in the playlist files themselves, but they are replaced virtually in the memory instead to be able to find the moved referenced media files when importing those playlists.

    After according settings in the Options dialog box you should right-click the folder from My Computer branch of the Media Tree that contains your M3U files, choose the Import M3U Playlists for Child Nodes command in the Export/Import Playlists menu and in its sub-menu select the target playlist in which you want to put your imported playlists (if you want to put them directly on the first level of the Playlists branch then you choose Add to Playlists).

    As you could see, there is not any new dialog box where you could specify the source folder which contains your M3U playlist files - you should select that folder in the Media Tree instead. You should choose the mentioned Import M3U Playlists for Child Nodes command even if you want to import M3U files that are all located in the same folder, because the M3U playlist files and their corresponding M3U nodes in the Media Tree are children of the selected node on which you apply that command.

    Additional INI keys

    There are some new keys in the [ExportM3UsForChildNodes] section of the MediaMonkey.ini file for some less used options that are not represented with the GUI of the enhanced version of the add-on:
  • AddFileIfIsntInDBMode - when importing M3U playlist files the media files referenced in them could be added to the Library even if they don't physically exist depending of this key: 0 = don't add missing files, 1 = add files as they are specified in M3U playlist files, 2 = add files, but first try to find matched files in the Library that have the same filename, file/song length and/or some other tags; default value is 2;

  • RemovePListFilesMode - if you already have exported playlist files using automatic mode, when you modify any settings for that mode in the Options dialog box, such files could be automatically removed depending of this key: 0 = don't remove playlist files, 1 = remove playlist files, 2 = ask for confirmation; default value is 2;

  • DeleteEmptiedFolders - delete emptied folders from disk after removal of playlist files if any of the related options is turned on (Delete all playlist files... or Delete exported file...); default value is the same as that that is specified in the Auto-organize dialog box;

  • PlsFilesWithSameNameMode - this value determines what will happen if you try to export two or more playlists with the same names that are inside the same parent folder: 0 = overwrite previous file; 1 = append playlist files; 2 (default) - ask if you want to rename the second playlist;

  • CopyMediaFilesConfirmed - it should be = 1 if you don't want the confirmation dialog box every time before applying any "Copy Media Files" command; default value is 0;

  • CopyAlbumArtFiles - it should be = 0 if you don't want to copy Album Art in external files together with media files when using commands from the menu that have "Copy Media Files" in their name; default value is 1;

  • IgnoreFileErrors - it should be = 1 if you want to skip display of error messages when it is not possible to export a playlist file or to copy a media file (when using a "Copy Media Files" command) for any reason;

  • ExportAsxAndXspfAsXml - it should be = 1 if you want ASX and XSPF files to be XML compliant; however, you should know that MM doesn't recognize such files, nor some another players (WinAmp, KMPlayer, VLC); even XSPF files made by MM are not XML compliant (' " & < > are not encoded); because of that, default value is 0.

  • LogExportedFiles - default value is 1; it should be = 0 if you don't want to log every file that is referenced inside exported playlist files since these logged lines could be numerous; this key should be used only with the Event Logger add-on and EventLoggerMode key that will be mentioned latter.

    The keys that was in use with the older Export/Create Playlists version of the add-on are still effective:
  • SkipExportExtensions - if it is = 1, the media files with the extension(s) specified with the next key will be excluded from the playlists files during the export; default value is 0, i.e. don't exclude any extension;

  • SkipListExtensions - this key contains the list of extensions, separated with the "|" character, that should be excluded from the export if the previous key is = 1; default is ogg|aac|mp4|flac|ape;

  • ExportOnStartupDelayMs - a delay for automatic export on startup, in milliseconds; default value is 2000, i.e. 2 seconds delay, but if you have media files on some slow network drive maybe you could try with a larger value;

  • DontUseSQLForTracklist - the export of nodes from the Library and Magic Nodes (and collections in MM4) is much faster if this option is = 0 (default value) because it doesn't need to wait for the filelist to be refreshed for each exported node; however, if you notice some problems with SQL generated playlists then you could write = 1; the media files referenced in playlist files generated using SQL have fixed (default) order, so you should set this ini key to 1 if you want to get them sorted as they appear in the filelist respecting your manual settings of the file order for corresponding nodes;

  • PathsWithFullMNCaptions - if this key is = 0 (default) then playlists exported from Magic nodes will not have Statistic addition to the node's caption in their names; however, if you want that part of caption in the playlist names, then you should write = 1;

  • AllNodesMode - this value determines the export of "All" nodes and names of exported playlists:
    -- AllNodesMode = 0 - "All" nodes are exported instead of their parents, i.e. the playlist files would contain paths to files in corresponding nodes and all their sub-nodes (the default behavior of the add-on versions before v4.0);
    -- AllNodesMode = 1 - "All" nodes are exported with parent node names, the result could be very similar to the previous mode;
    -- AllNodesMode = 2 - "All" nodes are exported with "[All]" playlist names, should be avoided with To parent folder option;
    -- AllNodesMode = 3 - "All" nodes are exported as "Parent_Name [All]" playlist names (default mode);

  • SkipLastAllNodes - the rightmost (deepest) disk folders in My Computer branch have displayed "All" sub-nodes, which is different from the disk folders from the Location branch (I think this is a program bug), you should write = 1 if you want skipped those "All" nodes from My Computer (default is = 0);

  • SkipAutoPlsSubNodes - when you choose option to Skip export of - Autoplaylists, if this key is = 1 the export will be omitted for their sub-nodes as well; however, autoplaylists could have static playlists as sub-nodes, so you may want to leave this at = 0 (default);

  • UseLastExportM3UsDir - when you choose some "Child Nodes" command from the menu you would get the dialog box for specifying the destination folder; if this option is = 0 (default) you will get displayed folder depending of the selected node/file in the tracklist; however, if you write = 1 the last destination folder that you have selected for export would be retrieved from the .ini file;

  • DontShowInfoBoxOnExportEnd - if this is = 0 (default) you would get displayed the message box showing the number of exported playlists and elapsed time on each finished export using some "Child Nodes" command from the menu;

  • ClearSameNamePlsMode - when importing playlists, if destination playlists already contain some files: 0 = keep those files, 1 = remove them from playlists, 2 = ask what to do; default value is 2;

  • EventLoggerMode - if you have installed the Event Logger add-on you could get displayed some additional information in its Event Viewer panel; the values could be from = 0 (default, without any information) to = 3 (most displayed information), e.g. value = 1 will display every exported playlist file and number of included media files; the negative values from = -1 to = -3 will cause logging of those information to the log file as well.

    The MediaMonkey.ini file is stored in the c:\Documents and Settings\User_Name\Application Data\MediaMonkey\ folder for MM4 and Win7. You could find the location of the .ini file depending of the version of MediaMonkey and Windows here. If you want to modify some key in it using e.g. Notepad, you should do that with closed MediaMonkey application.

    Limitations

    This version of the add-on has the same limitations as the older Export/Create Playlists version:
    Exported playlists from the Playlists branch are all saved as playlist files with fixed content, even auto-playlists. If you import such playlist files on another computer you will get only static playlists, even with files that was exported from auto-playlists. So this add-on cannot be used to transfer auto-playlists from one computer to another in their native form. If you want such possibility, you could use Restore/Synchronize Database add-on instead.

    Windows has a limitation on the path length of 260 characters; the files with longer path will not be created/copied on export, which applies both to playlist and media files (if you use any "... Copy Media Files" command from the menu).

    Refreshing of the tracklist works very strange in MediaMonkey 2.x and because of that you need to click on the confirmation dialog after every generated playlist, i.e. for every sub-node. This confirmation dialog is not needed with MM 3.x and higher, the speed and reliability are much better if you have installed MM 3.1.0.1218 or newer. Nodes within the Playlist branch don't have such limitation, only regular nodes. Also, with the version 4.0 of the add-on the nodes from the Library are exported using SQL without the mentioned limitation.

    You could directly select a playlist for automatic export in the From combo box in the Options dialog box only for playlists on the first level, i.e. a playlist which is a child of the Playlists node. If you want to auto-export some nested playlist, you could do that if you manually enter a full path to that playlist using "\" as a separator between nested levels, e.g. Genres\Rock\Pink Floyd. This also means that you cannot use the "\" character in the playlist names specified in that combo box. However, this limitation has only the playlist specified in the From path for the automatic export - other exported playlists has not that limitation, even the child playlists of that playlist could have "\" in their names. It is even possible to specify the name of some nested playlist without its full path, but only if that name is unique.

    If you use When any playlist is added or modified option, there are some situations when the automatic export doesn't work always when playlists are renamed or moved, even with MM v4.1.0.1648 or higher, but only after their parent node is collapsed/expanded. However, the automatic export is working always correctly using the mentioned option when MM playlists are added or modified.

    Notice

    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 the white-list, but still didn't. If you go to the www.virustotal.com/en/ site, you will see that the add-on is safe tested by 54 popular anti-virus engines; the only one reporting a worm in it is F-Secure. By the way, the F-Secure was constantly having the largest number of false positives in last few years according to the Real-World Protection Test by AV-Comparatives.

    If you are interested about my other add-ons for MediaMonkey, you could visit the following page.