<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.mediamonkey.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drakinite</id>
	<title>MediaMonkey Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mediamonkey.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Drakinite"/>
	<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/Special:Contributions/Drakinite"/>
	<updated>2026-05-23T12:37:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.4</generator>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Getting_Started_(Addons)&amp;diff=11799</id>
		<title>Getting Started (Addons)</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Getting_Started_(Addons)&amp;diff=11799"/>
		<updated>2024-12-06T04:49:02Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: /* Metadata (info.json) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;For a tutorial on developing addons for MediaMonkey 4, see [[Scripting (MM4)]]&lt;br /&gt;
&lt;br /&gt;
=Additional Links=&lt;br /&gt;
* The [https://www.mediamonkey.com/forum/viewtopic.php?f=27&amp;amp;t=81285 &#039;&#039;&#039;Developer Forum pinned post&#039;&#039;&#039;] provides a summary of the information provided here, plus a few additional notes.&lt;br /&gt;
* The [https://www.mediamonkey.com/docs/api/ &#039;&#039;&#039;API Reference&#039;&#039;&#039;] is a complete reference to all the functionality provided both by MM native code and JS libraries.&lt;br /&gt;
* [[Important Methods and Utilities (Addons)|&#039;&#039;&#039;Important Methods and Utilities&#039;&#039;&#039;]] provides a list of some of the most notable functionality provided.&lt;br /&gt;
* &#039;&#039;&#039;[[Methods_Added_Post_5.0|Methods added Post 5.0]]&#039;&#039;&#039; provides a list of methods that have been added &#039;&#039;after&#039;&#039; version 5.0.0, which you must be mindful of when publishing an addon.&lt;br /&gt;
* &#039;&#039;&#039;[[Working_with_Native_Objects_&amp;amp;_Data|Working with Native Objects &amp;amp; Data]]&#039;&#039;&#039; covers the concepts of data sources and native objects.&lt;br /&gt;
* The [https://www.mediamonkey.com/forum/viewforum.php?f=27 &#039;&#039;&#039;MM5 Developer Forum&#039;&#039;&#039;] is where you can find and ask questions related to developing MM5 addons.&lt;br /&gt;
* The [https://www.mediamonkey.com/wiki/Skinning_Guide &#039;&#039;&#039;Skinning Guide&#039;&#039;&#039;] provides information on how to create skins.&lt;br /&gt;
* [[Controlling MM5 from External Applications|&#039;&#039;&#039;Controlling MM5 from External Applications&#039;&#039;&#039;]] discusses the different methods of controlling MediaMonkey 5 from other applications.&lt;br /&gt;
&lt;br /&gt;
=Introduction to Making Addons in MediaMonkey 5=&lt;br /&gt;
&lt;br /&gt;
MediaMonkey 5 is a fully HTML-based desktop application which uses Chromium for rendering. This means that the entire UI is driven by a &#039;&#039;&#039;platform-independent&#039;&#039;&#039; HTML/CSS/JS stack, which is fully accessible to developers and skinners. JS in cooperation with native code drives the non-visual aspects, also fully controllable by developers. This gives unprecedented customization options to create beautiful skins, new or enhanced functionality and great addons in general.&lt;br /&gt;
&lt;br /&gt;
Scripting in MediaMonkey 5 differs greatly from MediaMonkey 4 and below, because it has been designed from the ground-up. It is not difficult to learn, especially if you are familiar with web programming. If you are coming from writing MediaMonkey 4 addons, you will get adjusted in no time at all.&lt;br /&gt;
&lt;br /&gt;
=Hello World example=&lt;br /&gt;
&lt;br /&gt;
Here is a basic Hello World example for a MediaMonkey 5 addon.&lt;br /&gt;
&lt;br /&gt;
Inside a new folder, create a file named info.json with the essential information about your addon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;My First Addon&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;myFirstAddon&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Hello world!&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;general&amp;quot;,&lt;br /&gt;
    &amp;quot;author&amp;quot;: &amp;quot;Jane Doe&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, create a file named mainwindow_add.js. This code will get added to the end of mainwindow.js, and it will run when MediaMonkey starts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Execute when the window is ready&lt;br /&gt;
window.whenReady(() =&amp;gt; {&lt;br /&gt;
    uitools.toastMessage.show(&#039;Hello world!&#039;, {&lt;br /&gt;
        disableUndo: true&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, select your two files and package them into a zip. Make sure that they are in the root of your zip archive and not inside a subfolder. Rename it to myFirstAddon.mmip.&lt;br /&gt;
&lt;br /&gt;
Inside MediaMonkey5, go to Tools &amp;gt; Addons, click Add, and select your addon. After it installs and you reload the window, you will get a popup &amp;quot;toast&amp;quot; message on the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
=MMIP (MediaMonkey Installer Packages)=&lt;br /&gt;
The center of all MediaMonkey add-ons is the MMIP. There is nothing special about the file format itself; it is just a ZIP archive with a different filename. You can use any standard method to zip the files, and then just rename it to a .mmip file.&lt;br /&gt;
&lt;br /&gt;
If you wish to automate the process of zipping the MMIP packages, you are in luck.&lt;br /&gt;
* There is a tool named pack-mmip which allows you to automatically package MMIPs from the command line. It is available here: https://github.com/JL102/pack-mmip&lt;br /&gt;
* If your code is on Github, you can use a pipeline to automatically package your addon whenever you commit changes: https://www.mediamonkey.com/forum/viewtopic.php?p=476534&lt;br /&gt;
&lt;br /&gt;
==Folder Structure==&lt;br /&gt;
&lt;br /&gt;
===Metadata (info.json)===&lt;br /&gt;
At the root of an MMIP, there must be a file named info.json. It includes all essential information about the addon. It cannot be in a subfolder. &lt;br /&gt;
&lt;br /&gt;
Here is an example info.json:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;My Addon Name&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;myFirstAddon&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;This is my first addon!&amp;quot;,&lt;br /&gt;
    &amp;quot;version&amp;quot;: &amp;quot;1.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;minAppVersion&amp;quot;: &amp;quot;5.0.0&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;general&amp;quot;,&lt;br /&gt;
    &amp;quot;author&amp;quot;: &amp;quot;Jane Doe&amp;quot;,&lt;br /&gt;
    &amp;quot;icon&amp;quot;: &amp;quot;icon.png&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the possible attributes info.json can contain:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;max-width: 800px;&amp;quot;&lt;br /&gt;
	|-&lt;br /&gt;
		! Attribute&lt;br /&gt;
		! Required?&lt;br /&gt;
		! Information&lt;br /&gt;
	|-&lt;br /&gt;
		| title&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| This is the name of your addon that is visible to the user.&lt;br /&gt;
	|-&lt;br /&gt;
		| id&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| This is the unique ID of your addon. It does not have to be identical to your title, but it is recommended that your addon&#039;s id be similar to its title for organizational purposes. The id can include the following characters: [a-zA-Z0-9 -_&#039;()]. As of 5.0.3, this format will be enforced. We recommend sticking to an alphanumeric string without spaces.&lt;br /&gt;
	|-&lt;br /&gt;
		| description&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| The description of your addon. Make sure your description is brief, yet conveys the meaning and usage of your addon to the user. You can create line breaks in the description with \n.&lt;br /&gt;
	|-&lt;br /&gt;
		| version&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| The version number of your addon. It must be in the format %d.%d.%d, which is three period-separated numbers.&lt;br /&gt;
	|-&lt;br /&gt;
		| minAppVersion&lt;br /&gt;
		| no*&lt;br /&gt;
		| The minimum compatible version of MediaMonkey for your addon. Please consult [[Methods_Added_Post_5.0]] to view whether your addon is incompatible with older versions of MediaMonkey.&lt;br /&gt;
	|-&lt;br /&gt;
		| maxAppVersion&lt;br /&gt;
		| no&lt;br /&gt;
		| The maximum compatible version of MediaMonkey for your addon. If this field is specified, then MediaMonkey versions newer than the one specified will not allow an installation of the addon. Useful if, for example, a newer version of MediaMonkey makes the addon not necessary to install or breaks compatibility.&lt;br /&gt;
	|-&lt;br /&gt;
		| type&lt;br /&gt;
		| no&lt;br /&gt;
		| The category of your addon. The existing categories are: general, skin, layout, sync, metadata, and visualization; but you can create your own categories. If unspecified, the type defaults to general.&lt;br /&gt;
	|-&lt;br /&gt;
		| author&lt;br /&gt;
		| no&lt;br /&gt;
		| The name of the addon&#039;s author.&lt;br /&gt;
	|-&lt;br /&gt;
		| icon&lt;br /&gt;
		| no&lt;br /&gt;
		| The filename of your addon&#039;s icon image. The image file must be in the root of the MMIP.&lt;br /&gt;
	|-&lt;br /&gt;
		| config&lt;br /&gt;
		| no&lt;br /&gt;
		| The filename of your addon&#039;s configuration script. See Adding Configurable Settings for more info.&lt;br /&gt;
	|-&lt;br /&gt;
		| updateURL&lt;br /&gt;
		| no&lt;br /&gt;
		| Link to a custom URL to check for app updates, for addons that are self-hosted. See: [[#Self-hosted addons|Self-hosted addons]]&lt;br /&gt;
	|-&lt;br /&gt;
		| installScript&lt;br /&gt;
		| no&lt;br /&gt;
		| The filename of your addon&#039;s install script. The script will run once when the addon is being installed. &amp;lt;/br&amp;gt;The variable &amp;lt;code&amp;gt;window.__currentAddonPath&amp;lt;/code&amp;gt; will be set, pointing to the filesystem folder into which the addon has been installed.&lt;br /&gt;
&lt;br /&gt;
	|-&lt;br /&gt;
		| uninstallScript&lt;br /&gt;
		| no&lt;br /&gt;
		| The filename of your addon&#039;s uninstall script. The script will run once when the addon is being uninstalled. &amp;lt;/br&amp;gt;The variable &amp;lt;code&amp;gt;window.__currentAddonPath&amp;lt;/code&amp;gt; will be set, pointing to the filesystem folder into which the addon has been installed.&lt;br /&gt;
	|-&lt;br /&gt;
		| files&lt;br /&gt;
		| no&lt;br /&gt;
		| This only applies to plugins (type: &amp;quot;plugin&amp;quot;). Contains an array of objects, listing plugin files to be added. &amp;quot;src&amp;quot; is the source file path relative to the root inside mmip and &amp;quot;tgt&amp;quot; is the target file path relative to the Plugins folder. It can only write under the Plugins folder.&amp;lt;/br&amp;gt;Example: &lt;br /&gt;
			&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;quot;files&amp;quot;: [{&lt;br /&gt;
			    &amp;quot;src&amp;quot;: &amp;quot;pluginDLL.dll&amp;quot;,&lt;br /&gt;
			    &amp;quot;tgt&amp;quot;: &amp;quot;pluginDLL.dll&amp;quot;&lt;br /&gt;
			})&lt;br /&gt;
			&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
	|-&lt;br /&gt;
		| showRestartPrompt&lt;br /&gt;
		| no&lt;br /&gt;
		| Default is &amp;quot;true&amp;quot;. Tells MediaMonkey whether to prompt a user for a restart. &amp;lt;/br&amp;gt; Possible values: &amp;quot;true&amp;quot;, &amp;quot;false&amp;quot;, &amp;quot;install&amp;quot;, and &amp;quot;uninstall&amp;quot;. &amp;lt;/br&amp;gt; If &amp;quot;true&amp;quot;, MM will prompt the user for a restart on both install and uninstall. &amp;lt;/br&amp;gt; If &amp;quot;install&amp;quot;, MM will only prompt on install. &amp;lt;/br&amp;gt; If &amp;quot;uninstall&amp;quot;, MM will only prompt on uninstall. &amp;lt;/br&amp;gt; If &amp;quot;false&amp;quot;, neither installing nor uninstalling will prompt a restart. &amp;lt;/br&amp;gt; &amp;lt;u&amp;gt;Must be a string if provided. Boolean true/false is not supported.&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; May be required in the future.&lt;br /&gt;
&lt;br /&gt;
===License===&lt;br /&gt;
You can choose to include a license file in the root of your addon, named license.txt. If present, when the addon is being installed. the license agreement will be shown to the user, and they will be required to accept the terms before installing.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
All the HTML/CSS/JS code that handles MM functionality is stored in a tree structure. As a developer, you can add new files, replace existing, or even extend functionality of the existing files. This is achieved by replication of the folder structure in Addons. For example, if a file controls\checkbox.js is present in the Addon, it completely replaces the default MM functionality of a checkbox. Similarly, an _add suffix in a filename extends functionality of an existing file. E.g. dialogs\dlgAbout_add.js can contain code that adds new controls to the layout of the About dialog.&lt;br /&gt;
&lt;br /&gt;
For information on how to load other files &amp;amp; scripts into your code, please see the sections on &amp;lt;code&amp;gt;requirejs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;localRequirejs&amp;lt;/code&amp;gt; here: [[Important_Methods_and_Utilities_(Addons)#requirejs]]&lt;br /&gt;
&lt;br /&gt;
===init.js===&lt;br /&gt;
You can choose to include a script named init.js in the root of your addon. If present, the script will run at startup.&lt;br /&gt;
&lt;br /&gt;
===MediaMonkey folder structure===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Root&#039;&#039;&#039; - Contains mainly mminit.js, which has the basic MM JS routines, several other utility .js files, maincontent.html which contains the basic definition of the main window. Also important is viewHandlers.js, which defines the tree structure of MM and behaviour of the views.&lt;br /&gt;
** &#039;&#039;&#039;controls&#039;&#039;&#039; - Contains all the controls used in MM UI. This starts with very basic controls, like button.js or dropdown.js, and continues with more complex things like listview.js and goes all the way to the complex UI elements, like equalizer.js, player.js or autoPlaylistEditor.js.&lt;br /&gt;
** &#039;&#039;&#039;dialogs&#039;&#039;&#039; - All the dialogs reside here, e.g. dlgConvertFormat.html + dlgConvertFormat.js&lt;br /&gt;
*** &#039;&#039;&#039;dlgOptions&#039;&#039;&#039; - Panels for the Tools &amp;gt; Options menu reside here.&lt;br /&gt;
** &#039;&#039;&#039;helpers&#039;&#039;&#039; - Contains miscellaneous helper scripts that do not fit into the other categories. For example: butt services, tray icon menus, docking, etc. &lt;br /&gt;
** &#039;&#039;&#039;layouts&#039;&#039;&#039; - Subfolders contain individual layouts, i.e. something that can replace/modify the files in the default folder structure in order to achieve completely different layout of MM (e.g. &amp;quot;Touch mode&amp;quot; layout). Unlike skins, layouts are supposed to mainly modify dimensions, positions and types of UI elements, not their color, etc. See [[Layouts]] for more information.&lt;br /&gt;
** &#039;&#039;&#039;scripts&#039;&#039;&#039; - This contains all non-skin addons that are installed to MediaMonkey, including addons that are preinstalled. They are organized by id.&lt;br /&gt;
** &#039;&#039;&#039;skin&#039;&#039;&#039; - Contains basic skin definitions, mostly a set of LESS files (an extension to CSS). See http://lesscss.org for more information.&lt;br /&gt;
*** &#039;&#039;&#039;icon&#039;&#039;&#039; - Contains all the icons used by MM. They are in SVG format in order to scale nicely to any display resolution. As anything else, they can be easily replaced by any Addon (skin or script).&lt;br /&gt;
** &#039;&#039;&#039;skins&#039;&#039;&#039; - Subfolders contain individual skins, i.e. something that can replace/modify the files in the default folder structure in order to achieve completely different looks of MM. Unlike layouts, this is supposed to mainly modify colors, fonts, icons, etc. See [[Skinning_Guide]] for more information.&lt;br /&gt;
&lt;br /&gt;
Filetypes that can be overridden:&lt;br /&gt;
* JS (e.g. controls/artistGrid.js&lt;br /&gt;
* HTML (e.g. (root)/player.html)&lt;br /&gt;
* LESS (e.g. skin/skin_complete.less)&lt;br /&gt;
* SVG (e.g. skin/icon/about.svg)&lt;br /&gt;
Filetypes that can be added to:&lt;br /&gt;
* JS (e.g. (root)/actions_add.js)&lt;br /&gt;
* LESS (e.g. skin/skin_base_add.less)&lt;br /&gt;
Filetypes that can be added new:&lt;br /&gt;
* JS (e.g. dialogs/dlgOptions/pnl_myAddon.js)&lt;br /&gt;
* HTML (e.g. dialogs/dlgOptions/pnl_myAddon.html)&lt;br /&gt;
* LESS (e.g. skin/skin_somethingnew.less)&lt;br /&gt;
* SVG (e.g. skin/icon/newIcon.svg)&lt;br /&gt;
* CSS (e.g. dialogs/dlgOptions/myExtraStylesheet.css) (Not recommended)&lt;br /&gt;
&lt;br /&gt;
==Versioning==&lt;br /&gt;
The versioning of addons must be in the format of three period-separated numbers (for example 0.0.1, 1.2.34, etc.) We recommend using semantic versioning (see https://semver.org).&lt;br /&gt;
&lt;br /&gt;
MediaMonkey has a built-in updater for addons. When the user clicks &amp;quot;Find Updates&amp;quot; in the addons screen, it will check online if there are any updates for addons that are installed. If any are found, the user clicks the download button that appears, then it will download and install the updated addon.&lt;br /&gt;
&lt;br /&gt;
==Submitting an addon==&lt;br /&gt;
To submit an addon, you must first have an account on the MediaMonkey forum and be signed in.&lt;br /&gt;
# 	Go to https://www.mediamonkey.com/addons/ and click Submit Addon.&lt;br /&gt;
# 	Select the most appropriate sub-category under MediaMonkey 5 that describes your addon.&lt;br /&gt;
# 	Click Submit New Addon.&lt;br /&gt;
##		Name: Make sure it is the same as your addon&#039;s title, so that it does not confuse users after installing.&lt;br /&gt;
##		Description: This does not have to be the same as the description in info.json. You can be as descriptive as you like.&lt;br /&gt;
##		Support Link, Author Link, and License Type are optional.&lt;br /&gt;
##		Image is not required, but highly recommended. We recommend that it be a square image, and the same image as your addon&#039;s icon.&lt;br /&gt;
#	Click next. On this page, you will add the first version of your addon.&lt;br /&gt;
##		Either upload your MMIP file or specify an external download link.&lt;br /&gt;
##		Compatibility: Specify the MediaMonkey versions on which you have confirmed your addon works.&lt;br /&gt;
##		What&#039;s New is optional, but you can specify updates here in future versions. &lt;br /&gt;
#	Click Save. Review your changes, make sure everything is accurate, then click Finish.&lt;br /&gt;
#	Your addon will appear in red until it is approved by a moderator. When approved, it will appear on the main addons page.&lt;br /&gt;
To add a new version of your addon, simply click Add New Version and follow steps 4-5. Each additional version needs to be approved by a moderator.&lt;br /&gt;
&lt;br /&gt;
==Adding to scripts==&lt;br /&gt;
To add code to the end of a certain script, create a JS file in its appropriate location, with _add at the end of its name.&lt;br /&gt;
&lt;br /&gt;
For example, if you wish to make an addition to controls/navigationBar.js, make controls/navigationBar_add.js inside your MMIP. You can also entirely replace the file if you name it controls/navigationBar.js inside your MMIP.&lt;br /&gt;
&lt;br /&gt;
==Self-hosted addons==&lt;br /&gt;
For addons hosted on external sites, please provide a field &#039;&#039;&#039;updateURL&#039;&#039;&#039; in info.json to allow MediaMonkey to check for updates to your addon. The server must reply with info on the most recent version of the addon, in either XML or JSON format. More fields can be returned, but will be ignored by current versions of MediaMonkey. &lt;br /&gt;
&lt;br /&gt;
For a working example, see: https://www.happymonkeying.com/update.php?upd=300021&lt;br /&gt;
Please note that since the release of that addon, the MinVersionMajor - MaxVersionBuild fields have been replaced with MinAppVersion, as described below.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
# The sequence of &#039;&#039;&#039;VersionMajor&#039;&#039;&#039;, &#039;&#039;&#039;VersionMinor&#039;&#039;&#039;, and &#039;&#039;&#039;VersionRelease&#039;&#039;&#039; form the standard version string; in the below example, it would be 3.0.6. &#039;&#039;&#039;VersionBuild&#039;&#039;&#039; also must be included but can be blank.&lt;br /&gt;
# &#039;&#039;&#039;UpdateURL&#039;&#039;&#039; is the link to download the addon as an MMIP.&lt;br /&gt;
# &#039;&#039;&#039;MinAppVersion&#039;&#039;&#039; refers to the minimum supported version of MediaMonkey. It is optional but highly recommended to include.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;VersionMajor&amp;gt;3&amp;lt;/VersionMajor&amp;gt;&lt;br /&gt;
&amp;lt;VersionMinor&amp;gt;0&amp;lt;/VersionMinor&amp;gt;&lt;br /&gt;
&amp;lt;VersionRelease&amp;gt;6&amp;lt;/VersionRelease&amp;gt;&lt;br /&gt;
&amp;lt;VersionBuild&amp;gt;&amp;lt;/VersionBuild&amp;gt;&lt;br /&gt;
&amp;lt;MinAppVersion&amp;gt;5.0.2&amp;lt;/MinAppVersion&amp;gt;&lt;br /&gt;
&amp;lt;UpdateURL&amp;gt;http://myserver/myAddon.mmip&amp;lt;/UpdateURL&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===JSON===&lt;br /&gt;
In JSON, &#039;&#039;&#039;version&#039;&#039;&#039; is provided as a single string instead of the four separate VersionX fields.&lt;br /&gt;
&lt;br /&gt;
Example (equivalent to the XML above):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;version&amp;quot;: &amp;quot;3.0.6&amp;quot;,&lt;br /&gt;
&amp;quot;minAppVersion&amp;quot;: &amp;quot;5.0.2&amp;quot;,&lt;br /&gt;
&amp;quot;updateUrl&amp;quot;:&amp;quot;http://myserver/myAddon.mmip&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Important tips=&lt;br /&gt;
*	&#039;&#039;&#039;Minimize the amount of computation your addon does on startup.&#039;&#039;&#039; Most scripts in MM run as soon as the window loads, so make sure your addon does not take a long time doing synchronous calculations that can cause the window to take longer to load. Ways to help avoid this:&lt;br /&gt;
**		Use &#039;&#039;&#039;window.whenReady()&#039;&#039;&#039; when possible. Using window.whenReady() will cause your callback to only fire when all scripts are loaded, the whole DOM is processed by our parser, and all controls are initialized.&lt;br /&gt;
**		Use asynchronous code when possible (with either callbacks, Promises, or async/await). If you perform heavy calculations that are synchronous, then it will halt the UI. See https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await for more information.&lt;br /&gt;
* 	&#039;&#039;&#039;Put your _add scripts into an anonymous function.&#039;&#039;&#039; To prevent potential issues of variables with the same name being used across different scripts, we recommend putting most/all of your logic into an anonymous function. You can do it with arrow notation or function notation.&lt;br /&gt;
**		&amp;lt;code&amp;gt;(() =&amp;gt; { /* Do stuff */ })();&amp;lt;/code&amp;gt;&lt;br /&gt;
**		&amp;lt;code&amp;gt;(function() { /* Do stuff */ })();&amp;lt;/code&amp;gt;&lt;br /&gt;
*	&#039;&#039;&#039;Enable Developer Mode.&#039;&#039;&#039; Under Help &amp;gt; About, you can enable Developer Mode. This will prevent crash logs from being automatically sent to MediaMonkey staff.&lt;br /&gt;
**		Additionally, developer mode can be enabled in the code via &amp;lt;code&amp;gt;app.enabledDeveloperMode(true)&amp;lt;/code&amp;gt; during testing. But &#039;&#039;&#039;do not&#039;&#039;&#039; keep it in your published extension.&lt;br /&gt;
*	&#039;&#039;&#039;Use requestFrame and requestTimeout instead of requestAnimationFrame and setTimeout.&#039;&#039;&#039; The custom functions automatically check whether the window/control still exists, and do not call the callback when the window/control have already been destroyed, to prevent crashes.&lt;br /&gt;
&lt;br /&gt;
*	&#039;&#039;&#039;Do not spam console.log&#039;&#039;&#039; in your final addon that&#039;s distributed to users. While developing it, it is completely okay to use it as much as you want! However, the JavaScript console.log function is relatively computationally expensive, so if it spams logs, then it will degrade performance. If it just logs occasionally, for debugging purposes, it&#039;s okay. Just don&#039;t overdo it.&lt;br /&gt;
&lt;br /&gt;
* To avoid breaking for...in loops, do not add functions to Array.prototype with the syntax &amp;lt;code&amp;gt;Array.prototype.func = function () {}&amp;lt;/code&amp;gt;. Details here: https://www.ventismedia.com/mantis/view.php?id=18145&lt;br /&gt;
&lt;br /&gt;
=Actions, Hotkeys &amp;amp; Menus=&lt;br /&gt;
The MediaMonkey interface is controlled largely by actions, which are defined inside actions.js. Most UI elements are tied to actions, and all hotkeys are defined by actions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Defining custom actions must be done in actions_add.js. Otherwise, MediaMonkey will not properly register the actions. &lt;br /&gt;
&lt;br /&gt;
==Defining actions==&lt;br /&gt;
Actions are defined in the global actions object. Each action contains the following attributes:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;max-width: 800px;&amp;quot;&lt;br /&gt;
	|-&lt;br /&gt;
		! Attribute&lt;br /&gt;
		! Type&lt;br /&gt;
		! Required?&lt;br /&gt;
		! Information&lt;br /&gt;
	|-&lt;br /&gt;
		| title&lt;br /&gt;
		| function (string)&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| Function that returns the (string) title of the action. &lt;br /&gt;
	|-&lt;br /&gt;
		| execute&lt;br /&gt;
		| function &lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| Function that runs when the action is executed. &lt;br /&gt;
	|-&lt;br /&gt;
		| category&lt;br /&gt;
		| function (string)&lt;br /&gt;
		| no&lt;br /&gt;
		| Function that returns the (string) name of the action&#039;s category. Categories are defined in the global actionCategories object. Default is general.&lt;br /&gt;
	|-&lt;br /&gt;
		| hotkeyAble&lt;br /&gt;
		| boolean&lt;br /&gt;
		| no&lt;br /&gt;
		| Determines whether the action can be tied to a hotkey. Default is false.&lt;br /&gt;
	|-&lt;br /&gt;
		| icon&lt;br /&gt;
		| string&lt;br /&gt;
		| no&lt;br /&gt;
		| Icon that shows in menus that contain the action. The icon ids are located in skin/(iconname).svg.&lt;br /&gt;
	|-&lt;br /&gt;
		| visible&lt;br /&gt;
		| function (boolean)&lt;br /&gt;
		| no&lt;br /&gt;
		| Determines whether the action will show up in menus. This can be useful for integrating party mode, for example, by disabling your action when party mode is enabled with&lt;br /&gt;
			&amp;lt;code&amp;gt;visible: window.uitools.getCanEdit&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
Additionally, actions can contain any other custom attributes and methods.&lt;br /&gt;
&lt;br /&gt;
Defining your own custom action in actions_add.js:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
actions.myCustomAction = {&lt;br /&gt;
    title: &#039;My Custom Action&#039;,&lt;br /&gt;
    hotkeyAble: true,&lt;br /&gt;
    execute: function () {&lt;br /&gt;
        messageDlg(&#039;This action was created by hotkeyAction script.&#039;, &#039;information&#039;, [&#039;btnOK&#039;], {&lt;br /&gt;
            defaultButton: &#039;btnOK&#039;&lt;br /&gt;
        }, undefined);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Assigning hotkeys to actions==&lt;br /&gt;
Assigning hotkeys is very simple. Hotkeys are handled by the global hotkeys object, and you can register a hotkey with the hotkeys.addHotkey method.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;hotkeys.addHotkey(hotkey, action, global);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;max-width: 800px;&amp;quot;&lt;br /&gt;
	|-&lt;br /&gt;
		! Attribute&lt;br /&gt;
		! Type&lt;br /&gt;
		! Required?&lt;br /&gt;
		! Information&lt;br /&gt;
	|-&lt;br /&gt;
		| hotkey&lt;br /&gt;
		| string&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| The hotkey to assign. See Tools &amp;gt; Options &amp;gt; Hotkeys for the right syntax.&lt;br /&gt;
	|-&lt;br /&gt;
		| action&lt;br /&gt;
		| string&lt;br /&gt;
		| &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
		| The action (in window.actions) to execute. Caps sensitive.&lt;br /&gt;
	|-&lt;br /&gt;
		| global&lt;br /&gt;
		| boolean&lt;br /&gt;
		| no&lt;br /&gt;
		| Determines whether the hotkey is global (accessible outside the MM window). Default is false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Adding a hotkey to your custom action:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;hotkeys.addHotkey(&#039;Ctrl+Shift+Q&#039;, &#039;myCustomAction&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The addHotkey method automatically handles duplicates and deletions. So if a user deletes the hotkey, you don&#039;t have to worry about it showing up again every time the window reloads; and they can manually re-add it.&lt;br /&gt;
&lt;br /&gt;
To see the syntax that MediaMonkey uses for hotkeys, go to the Tools&amp;gt;Options&amp;gt;Hotkeys window and type in your desired hotkey.&lt;br /&gt;
&lt;br /&gt;
==Adding actions to menus==&lt;br /&gt;
MediaMonkey uses a structure for menus that allows infinitely nested sub-menus. The data structure of a menu item is as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
menuItem = {&lt;br /&gt;
    action: {&lt;br /&gt;
        title: String,      // Required&lt;br /&gt;
        execute: Function,  // Usually required&lt;br /&gt;
        icon: String,&lt;br /&gt;
        visible: Boolean,&lt;br /&gt;
        disabled: Boolean,&lt;br /&gt;
        submenu: Array&lt;br /&gt;
    },&lt;br /&gt;
    order: Number,          // Required&lt;br /&gt;
    grouporder: Number     // Required&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;submenu&amp;lt;/code&amp;gt; field, which is optional, contains an array of as many other menu items as desired. The &amp;lt;code&amp;gt;grouporder&amp;lt;/code&amp;gt; field determines which group a menu item will belong to, and groups will be automatically sorted by the &amp;lt;code&amp;gt;order&amp;lt;/code&amp;gt; field. Menu items defined in actions.js are intentionally given order and grouporder like 10, 20, 30, etc. to allow addons to insert menu items in between them as desired.&lt;br /&gt;
&lt;br /&gt;
Note: These fields can &#039;&#039;either&#039;&#039; be the datatype as described above &#039;&#039;or&#039;&#039; a function which returns the requested data type. At runtime, the global method &amp;lt;code&amp;gt;resolveToValue&amp;lt;/code&amp;gt; is called, which either returns the primitive type or calls the provided function. If you analyze the actions in actions.js, you&#039;ll see bits like &amp;lt;code&amp;gt;visible: window.uitools.getCanEdit&amp;lt;/code&amp;gt;. This is an example of a function which resolves to a boolean.&lt;br /&gt;
&lt;br /&gt;
There are two menu groups that you will most likely want to add items to: The main menu bar, and tracklist menus.&lt;br /&gt;
&lt;br /&gt;
===Main menu bar===&lt;br /&gt;
The File, Edit, View, etc. menus are defined in &amp;lt;code&amp;gt;window._menuItems&amp;lt;/code&amp;gt;, from actions.js. See actions.js or look in the devtools console to see all the possible submenus to which to add your action. &#039;&#039;&#039;You can only add to these menus inside actions_add.js.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For example, if you wish to add an action to the &amp;quot;Tools &amp;gt; Edit tags&amp;quot; submenu, that is under &amp;lt;code&amp;gt;window._menuItems.editTags&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
window._menuItems.editTags.submenu.push({&lt;br /&gt;
    action: actions.myNewAction,&lt;br /&gt;
    order: 10,&lt;br /&gt;
    grouporder: 10&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tracklist menus===&lt;br /&gt;
Tracklist menus, which may also be called media menus, are the ones that contain &#039;&#039;Play now&#039;&#039;, &#039;&#039;Play next&#039;&#039;, &#039;&#039;Properties&#039;&#039;, etc. These are defined in &amp;lt;code&amp;gt;window.menus.tracklistMenuItems&amp;lt;/code&amp;gt;, from controls/trackListView.js. &#039;&#039;&#039;You should only add to these menus inside controls/trackListView_add.js.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For example, if you wish to add an action below Cut, Copy, and Paste, but above Rename:&lt;br /&gt;
&lt;br /&gt;
* First, look in the definition of menus.tracklistMenuItems that Cut/Copy/Paste/Rename are in group 40, Paste&#039;s order is 30, and Rename&#039;s order is 35.&lt;br /&gt;
* This item must go in the same group and have an order between 30 and 35.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
window.menus.tracklistMenuItems.push({&lt;br /&gt;
    action: actions.myNewAction,&lt;br /&gt;
    order: 31,&lt;br /&gt;
    grouporder: 40&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Categories==&lt;br /&gt;
&#039;&#039;Coming soon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Storing Data=&lt;br /&gt;
&lt;br /&gt;
==JSON==&lt;br /&gt;
When you wish to save data such as user preferences, the most effective method is to save values in persistent.json. The way you do this is through the app.setValue and app.getValue methods. &lt;br /&gt;
Both methods require two parameters.&lt;br /&gt;
&lt;br /&gt;
If retrieving a value that is primitive, set the second parameter as undefined.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
app.setValue(&#039;myExtension_foo&#039;, &#039;bar&#039;);&lt;br /&gt;
    &lt;br /&gt;
var foo = app.getValue(&#039;myExtension_foo&#039;, undefined);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When retrieving a value that is an object, you must provide the second parameter as an object. The function will take that object and populate each value if it exists, so you can easily manage default settings this way.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Saving settings&lt;br /&gt;
app.setValue(&#039;myExtension_settings&#039;, {&lt;br /&gt;
    option1: 0,&lt;br /&gt;
    option2: &#039;electric boogaloo&#039;&lt;br /&gt;
});&lt;br /&gt;
// Getting settings with hardcoded defaults&lt;br /&gt;
var settings = app.getValue(&#039;myExtension_settings&#039;, {&lt;br /&gt;
    option1: 0,&lt;br /&gt;
    option2: &#039;default&#039;&lt;br /&gt;
})&lt;br /&gt;
// Passing an empty object works too&lt;br /&gt;
var settings = app.getValue(&#039;myExtension_settings&#039;, {});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This data is automatically saved in persistent.json, which is saved in the user&#039;s AppData folder or the Portable subfolder; for non-portable and portable installations, respectively. Persistent.json is only deleted if the user manually deletes it or removes a portable installation.&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Make sure the keys that you use are unique. Include the addon ID in the key, as demonstrated above, to ensure this.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
If you need to manage more data, you can use the database. In MM5, you can access the database through the app.db object. For more information, see: https://www.mediamonkey.com/webhelp/MM5Preview/classes/DB.html.&lt;br /&gt;
&lt;br /&gt;
To execute queries that do not need return values, use app.db.executeQueryAsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
app.db.executeQueryAsync(&#039;CREATE TABLE IF NOT EXISTS myPlugin (_id INTEGER PRIMARY KEY, value TEXT UNIQUE NOT NULL)&#039;)&lt;br /&gt;
.then(() =&amp;gt; {&lt;br /&gt;
	app.db.executeQueryAsync(&#039;INSERT INTO myPlugin [. . .]&#039;);&lt;br /&gt;
})&lt;br /&gt;
.catch(err =&amp;gt; {&lt;br /&gt;
    console.error(err)&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
To execute queries that need return values, use app.db.getQueryResultAsync:&lt;br /&gt;
app.db.getQueryResultAsync(&#039;SELECT * FROM Albums&#039;)&lt;br /&gt;
.then(result =&amp;gt; {&lt;br /&gt;
    // do stuff&lt;br /&gt;
})&lt;br /&gt;
.catch(err =&amp;gt; console.error(err));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method returns a QueryResults object, which is a linked list. See https://www.mediamonkey.com/webhelp/MM5Preview/classes/QueryResults.html.&lt;br /&gt;
&lt;br /&gt;
==Adding Configurable Settings to your Addon==&lt;br /&gt;
There are two ways to add configurable options to an addon: via the &amp;quot;config&amp;quot; option in info.json, or modifying the options dialog.&lt;br /&gt;
&lt;br /&gt;
===Addon Config===&lt;br /&gt;
The recommended way of adding configurable settings to an addon, if the settings are not directly related to an existing options panel, is to use the built-in addon configuration options. To do this, you must specify &amp;quot;config&amp;quot; in info.json:&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&amp;quot;config&amp;quot;: &amp;quot;config.js&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inside your configuration js file, you must define a window.configInfo object, with two functions: load and save.&lt;br /&gt;
&lt;br /&gt;
Load is executed during page load, and save is executed after &amp;quot;OK&amp;quot; is pressed. Both functions are passed two parameters: pnl and item.&lt;br /&gt;
* &amp;quot;pnl&amp;quot; (pnlDiv) is the HTML node of the panel&lt;br /&gt;
* &amp;quot;item&amp;quot; (addon) is an object that contains information about the addon, such as title, ext_id, description, version, installType, author, path, etc.&lt;br /&gt;
&lt;br /&gt;
You can opt to add a config HTML as well, by giving it the same base name as your config JS. For example, if it is named config.js, create config.html; if it is named MediaMonkeyRocks.js, create MediaMonkeyRocks.html.&lt;br /&gt;
&lt;br /&gt;
When a configuration script is provided for an addon, the panel will open once the addon is installed. Additionally, a button will appear in its listing to open the configuration panel.&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
&lt;br /&gt;
config.html&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;uiRows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-id=&amp;quot;chbOption1&amp;quot; data-control-class=&amp;quot;Checkbox&amp;quot; data-tip=&amp;quot;Option 1 tooltip&amp;quot;&amp;gt;Option 1&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-id=&amp;quot;chbOption2&amp;quot; data-control-class=&amp;quot;Checkbox&amp;quot; data-tip=&amp;quot;Option 2 tooltip&amp;quot;&amp;gt;Option 1&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
config.js&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
window.configInfo = {&lt;br /&gt;
    load: function (pnlDiv, addon) {&lt;br /&gt;
        // Load config with defaults&lt;br /&gt;
        this.config = app.getValue(&#039;myAddon_config&#039;, {&lt;br /&gt;
            option1: true,&lt;br /&gt;
            option2: false,&lt;br /&gt;
        });&lt;br /&gt;
        // Set checkboxes to the configuration settings&lt;br /&gt;
        var UI = getAllUIElements(pnlDiv);&lt;br /&gt;
        UI.chbOption1.controlClass.checked = this.config.option1;&lt;br /&gt;
        UI.chbOption2.controlClass.checked = this.config.option2;&lt;br /&gt;
    },&lt;br /&gt;
    save: function (pnlDiv, addon) {&lt;br /&gt;
        // Save settings according to the checkbox changes&lt;br /&gt;
        var UI = getAllUIElements(pnlDiv);&lt;br /&gt;
        this.config.option1 = UI.chbOption1.controlClass.checked;&lt;br /&gt;
        this.config.option2 = UI.chbOption2.controlClass.checked;&lt;br /&gt;
        app.setValue(&#039;myAddon_config&#039;, this.config);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Options Dialog===&lt;br /&gt;
When modifying the options dialog, you can either add to / modify an existing panel or create your own panel.&lt;br /&gt;
&lt;br /&gt;
====Adding to an existing panel====&lt;br /&gt;
Adding to an existing panel can be done with _add JS files. For more context, take a look at dialogs/dlgOptions.js.&lt;br /&gt;
&lt;br /&gt;
For example, if you wish to add to the General Options panel:&lt;br /&gt;
#	Create dialogs/dlgOptions/pnl_General_add.js&lt;br /&gt;
#	Override the optionPanels.pnl_General.load and optionPanels.pnl_General.save functions to add your own code&lt;br /&gt;
#	Use the divFromSimpleMenu function to automatically create styled checkboxes/radio buttons&lt;br /&gt;
#	Use app.getValue and app.setValue to retrieve and save the user settings&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
    var options = [&lt;br /&gt;
        {&lt;br /&gt;
            title: &#039;Option 1&#039;, // The label that appears on the checkbox/radio button&lt;br /&gt;
            radiogroup: &#039;myAddon_RadioOptions&#039;, // Self-explanatory&lt;br /&gt;
            execute: function() {state.RadioOptions = &#039;option1&#039;} // This function runs whenever the element is clicked&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            title: &#039;Option 2&#039;,&lt;br /&gt;
            radiogroup: &#039;myAddon_RadioOptions&#039;,&lt;br /&gt;
            execute: function() {state.RadioOptions = &#039;option2&#039;}&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
            title: &#039;My Checkbox&#039;,&lt;br /&gt;
            checkable: true, // Turns it into a checkbox&lt;br /&gt;
            execute: function() {state.Checkbox = this.checked;}&lt;br /&gt;
        },&lt;br /&gt;
    ]&lt;br /&gt;
    var state;&lt;br /&gt;
    &lt;br /&gt;
    optionPanels.pnl_General.override({&lt;br /&gt;
        load: function($super, sett, pnlDiv) {&lt;br /&gt;
            $super(sett, pnlDiv);&lt;br /&gt;
            console.log(&#039;yoyoyoyoyo&#039;)&lt;br /&gt;
            &lt;br /&gt;
            state = app.getValue(&#039;myAddon_settings&#039;, {&lt;br /&gt;
                RadioOptions: &#039;option1&#039;,&lt;br /&gt;
                Checkbox: false&lt;br /&gt;
            });&lt;br /&gt;
            // Update checkbox/radiobutton state from settings&lt;br /&gt;
            if (state.RadioOptions == &#039;option1&#039;) {options[0].checked = true; options[1].checked = false;} &lt;br /&gt;
            else {options[0].checked = false; options[1].checked = true}&lt;br /&gt;
            if (state.Checkbox == true) options[2].checked = true;&lt;br /&gt;
            // Create an HTML menu from the options&lt;br /&gt;
            divFromSimpleMenu(pnlDiv, options);&lt;br /&gt;
        },&lt;br /&gt;
        save: function($super, sett, pnlDiv) {&lt;br /&gt;
            $super(sett, pnlDiv);&lt;br /&gt;
            // Save settings&lt;br /&gt;
            app.setValue(&#039;myAddon_settings&#039;, state);&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Creating a new panel====&lt;br /&gt;
You can define your new panel inside dialogs/dlgOptions, and add it inside dialogs/dlgOptions_add.js.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Coming soon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Plugins=&lt;br /&gt;
While most functionality can be reached in MediaMonkey 5 via addons using JS/HTML, it still supports the majority of the Winamp 2.0 API. Winamp plugin support for MediaMonkey 5 is the same as in MediaMonkey 4. See [[Winamp Plug-ins (MM4)]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Packaging a Plugin==&lt;br /&gt;
To create an MMIP installer for a plugin, you need to include the information about your plugin&#039;s file[s] into info.json:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;type&amp;quot;: &amp;quot;plugin&amp;quot;,&lt;br /&gt;
&amp;quot;files&amp;quot;: [{&lt;br /&gt;
	&amp;quot;src&amp;quot;: &amp;quot;pluginDLL.dll&amp;quot;,&lt;br /&gt;
	&amp;quot;tgt&amp;quot;: &amp;quot;pluginDLL.dll&amp;quot;&lt;br /&gt;
}]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can contain more files. &amp;quot;src&amp;quot; is the source file path relative to the root inside mmip, and &amp;quot;tgt&amp;quot; is target file relative to the Plugins folder inside the MediaMonkey installation. It can write only under the Plugins folder.&lt;br /&gt;
&lt;br /&gt;
If needed, you can also include an installScript and uninstallScript:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
&amp;quot;installScript&amp;quot;: &amp;quot;install.js&amp;quot;,&lt;br /&gt;
&amp;quot;uninstallScript&amp;quot;: &amp;quot;uninstall.js&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The install script will run during installation and uninstall script will run after uninstallation. &lt;br /&gt;
&lt;br /&gt;
Both will run inside the main window, allowing full access to the UI. Additionally, the variable &amp;lt;code&amp;gt;window.__currentAddonPath&amp;lt;/code&amp;gt; will be set, pointing to the filesystem folder into which the addon has been installed.&lt;br /&gt;
&lt;br /&gt;
=Accessing the main window object from other windows=&lt;br /&gt;
Sometimes, you may need to run functions  or access properties from the main window in the context of other windows. For example, performing live updates in an options panel. To do this, use the app.dialogs.getMainWindow() method.&lt;br /&gt;
&lt;br /&gt;
If you have a property &amp;quot;x&amp;quot; in the main window, this is how to access it from another window:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;app.dialogs.getMainWindow().getValue(&#039;x&#039;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If you assign a property or method to &amp;quot;app&amp;quot;, you will need to do this to get the version of it that is attached to the main window.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;app.dialogs.getMainWindow().getValue(&#039;app&#039;).myObject.myMethod();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=UI Elements &amp;amp; Controls=&lt;br /&gt;
&lt;br /&gt;
==Icons==&lt;br /&gt;
Instead of bitmaps, MediaMonkey uses [https://en.wikipedia.org/wiki/Scalable_Vector_Graphics SVGs] for its icons. They are stored in the &amp;lt;code&amp;gt;skin/icon&amp;lt;/code&amp;gt; folder. This is because SVGs can be scaled to any size without appearing pixelated. See [[Skinning_Guide#Creating_Icons|Skinning Guide/Creating Icons]] for an introduction on how to create custom icons. &lt;br /&gt;
&lt;br /&gt;
There are three ways to load icons: The &amp;lt;code&amp;gt;data-icon&amp;lt;/code&amp;gt; HTML attribute; &amp;lt;code&amp;gt;loadIconFast()&amp;lt;/code&amp;gt;; and &amp;lt;code&amp;gt;loadIcon()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===data-icon===&lt;br /&gt;
Whenever HTML is loaded and/or classes are initialized, any and all elements with the attribute &amp;quot;data-icon&amp;quot; will automatically load the SVG files associated with the icon name provided. For details on how it works, check window.initializeControls in mminit.js. See this example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-control-class=&amp;quot;toolbutton&amp;quot; data-icon=&amp;quot;music&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will create a ToolButton control with the icon from music.svg. Using the ToolButton control class is not required, but if you do not add any CSS to limit the size of the icon, it will appear very large.&lt;br /&gt;
&lt;br /&gt;
===loadIconFast===&lt;br /&gt;
If you wish to load an icon programmatically, use &amp;lt;code&amp;gt;loadIconFast()&amp;lt;/code&amp;gt;. For more details, see [https://www.mediamonkey.com/docs/api/classes/Window.html#method_loadIconFast loadIconFast].&lt;br /&gt;
&lt;br /&gt;
===loadIcon===&lt;br /&gt;
Only use &amp;lt;code&amp;gt;loadIcon()&amp;lt;/code&amp;gt; if you need to access the raw SVG code before adding it to the DOM. For more details, see [https://www.mediamonkey.com/docs/api/classes/Window.html#method_loadIcon loadIcon].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;More coming soon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- todo: data-control-class and data-init-params --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11403</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11403"/>
		<updated>2024-04-11T19:43:13Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 5+ Database location ==&lt;br /&gt;
&#039;&#039;&#039;Standard installation:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;AppData\Roaming\MediaMonkey5\MM5.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portable installation:&#039;&#039;&#039; &amp;lt;INSTALL LOCATION&amp;gt;\Portable\MM5.DB&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Vista and Windows 7, before 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows 7 through 11 (64-bit), after 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== MediaMonkey 3 Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey 2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11402</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11402"/>
		<updated>2024-04-11T19:42:32Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added MM5+ database location and some cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 5+ Database location ==&lt;br /&gt;
&#039;&#039;&#039;Standard installation:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;AppData\Roaming\MediaMonkey5\MM5.DB&lt;br /&gt;
&#039;&#039;&#039;Portable installation:&#039;&#039;&#039; &amp;lt;INSTALL LOCATION&amp;gt;\Portable\MM5.DB&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Vista and Windows 7, before 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows 7 through 11 (64-bit), after 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default MediaMonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== MediaMonkey 3 Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey 2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=URLRequestCache_table&amp;diff=11401</id>
		<title>URLRequestCache table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=URLRequestCache_table&amp;diff=11401"/>
		<updated>2024-04-11T19:30:08Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Created page with &amp;quot;{{DatabaseTablesList}} This table was added in version 5.0. == Fields == {| border=&amp;quot;1&amp;quot; |- ! Name ! Value Type ! Possible Values ! Description |- | &amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039; | INTEGER |  |  |- | &amp;#039;&amp;#039;&amp;#039;URL&amp;#039;&amp;#039;&amp;#039; | TEXT | http://mb.mediamonkey.com:5000/ws/2/artist/?query=... | The URL of the web request |- | &amp;#039;&amp;#039;&amp;#039;Response&amp;#039;&amp;#039;&amp;#039; | TEXT | {&amp;quot;created&amp;quot;:&amp;quot;2023-12-05T13:01:15.203Z&amp;quot;,&amp;quot;artists&amp;quot;:[{&amp;quot;release-... | The response of the web request |- | &amp;#039;&amp;#039;&amp;#039;CachedTime&amp;#039;&amp;#039;&amp;#039; | REAL | 2024-04-10 17:42:33 | The time the requ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
This table was added in version 5.0.&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| http://mb.mediamonkey.com:5000/ws/2/artist/?query=...&lt;br /&gt;
| The URL of the web request&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Response&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| {&amp;quot;created&amp;quot;:&amp;quot;2023-12-05T13:01:15.203Z&amp;quot;,&amp;quot;artists&amp;quot;:[{&amp;quot;release-...&lt;br /&gt;
| The response of the web request&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CachedTime&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| 2024-04-10 17:42:33&lt;br /&gt;
| The time the request was cached. Formatted as an ISO string.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Pinned_table&amp;diff=11400</id>
		<title>Pinned table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Pinned_table&amp;diff=11400"/>
		<updated>2024-04-11T19:25:04Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: added examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
This table was added in version 5.0.&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;type&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| folder&lt;br /&gt;
| The type of object being pinned&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;type_id&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| The numerical database id of the pinned item, if it has one&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;coll_id&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;string_type_id&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| C:\Users\&amp;lt;USERNAME&amp;gt;\Music&lt;br /&gt;
| String representation of the pinned item, if it doesn&#039;t have a numerical ID&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Radio_table&amp;diff=11399</id>
		<title>Radio table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Radio_table&amp;diff=11399"/>
		<updated>2024-04-11T19:15:56Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
This table was added in version 5.0.&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ParentID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Internet Radio&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;URL&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| https://www.internet-radio.com/&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure_(MM4)&amp;diff=11398</id>
		<title>Database Structure (MM4)</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure_(MM4)&amp;diff=11398"/>
		<updated>2024-04-11T19:02:16Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Drakinite moved page Database Structure (MM4) to Database Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Database Structure]]&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11397</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11397"/>
		<updated>2024-04-11T19:02:16Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Drakinite moved page Database Structure (MM4) to Database Structure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Vista and Windows 7, before 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows 7 through 11 (64-bit), after 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey v2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Pinned_table&amp;diff=11396</id>
		<title>Pinned table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Pinned_table&amp;diff=11396"/>
		<updated>2024-04-11T18:58:52Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
This table was added in version 5.0.&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;type&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;type_id&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;coll_id&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;string_type_id&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11395</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11395"/>
		<updated>2024-04-11T16:46:35Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Vista and Windows 7, before 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows 7 through 11 (64-bit), after 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey v2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Songs_table&amp;diff=11394</id>
		<title>Songs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Songs_table&amp;diff=11394"/>
		<updated>2024-04-11T16:45:17Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}, formattting, added missing Extension field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
!&lt;br /&gt;
! SongData Name &lt;br /&gt;
! SongData Type &lt;br /&gt;
! SongData Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::ID |ID ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::ArtistName |ArtistName ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDAlbum&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::AlbumName |AlbumName ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AlbumArtist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::AlbumArtistName |AlbumArtistName ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DiscNumber&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::DiscNumberStr |DiscNumberStr ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackNumber&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::TrackOrderStr |TrackOrderStr ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SongTitle&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Title |Title ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SongPath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Path |Path ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Extension&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| 5 characters max&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Year&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 2010&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Year |Year ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Date&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 20100930&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Genre&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Genre |Genre ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FileLength&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::FileLength |FileLength ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SongLength&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::SongLength |SongLength ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDMedia&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Media |Media ]]&lt;br /&gt;
| Property Get &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CacheStatus&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Cached |Cached ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CacheName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::CachedPath |CachedPath ]]&lt;br /&gt;
| Property Get &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Rating |Rating ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bitrate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Bitrate |Bitrate ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Music = 0, Podcast = 1, Audiobook = 2&lt;br /&gt;
| Added in version 3.1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDEpisode&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Corresponds to PodcastsEpisodes.ID&lt;br /&gt;
| Added in version 3.1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Broadcast&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreviewState&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreviewName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::PreviewPath |PreviewPath ]]&lt;br /&gt;
| Property Get &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreviewStartTime&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreviewLength&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Author&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The Composer of the Song&lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Author |Author ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SamplingFrequency&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::SampleRate |SampleRate ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Stereo&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Channels |Channels ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Copyrighted&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Original&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;VBR&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::VBR |VBR ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BPM&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Beats Per Minute&lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::BPM |BPM ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SignType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SignPart1&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SignPart2&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SignPart3&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SignPart4&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlayCounter&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::PlayCounter |PlayCounter ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastTimePlayed&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::LastPlayed |LastPlayed ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastTimeSkipped&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AudioCDTrack&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FileModified&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::FileModified |FileModified ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackModified&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ArtworkModified&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MaxSample&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;NormalizeTrack&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Track gain value (dB) &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Leveling |Leveling ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;NormalizeAlbum&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Album gain value (dB)&lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::LevelingAlbum |LevelingAlbum ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom1&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Custom1 |Custom1 ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom2&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Custom2 |Custom2 ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom3&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Custom3 |Custom3 ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom4&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Custom4 |Custom4 ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom5&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Custom5 |Custom5 ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom6&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom7&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom8&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom9&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Custom10&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DateAdded&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| UTC as Delphi TDateTime&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::DateAdded |DateAdded ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OrigFileLength&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreGap&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::PreGap |PreGap ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PostGap&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::PostGap |PostGap ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TotalSamples&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::TotalSamples |TotalSamples ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlaybackPos&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Bookmark |Bookmark ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
| To be confirmed&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GaplessBytes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::GaplessBytes |GaplessBytes ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDFolder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Copyright&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Copyright |Copyright ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Publisher&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Publisher |Publisher ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Encoder&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Encoder |Encoder ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;EncodedBy&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lyricist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Lyricist |Lyricist ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Band&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Band |Band ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Conductor&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Conductor |Conductor ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Remixer&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;InvolvedPeople&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::InvolvedPeople |InvolvedPeople ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OrigTitle&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::OriginalTitle |OriginalTitle ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OrigArtist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::OriginalArtist |OriginalArtist ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OrigLyricist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::OriginalLyricist |OriginalLyricist ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GroupDesc&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Grouping |Grouping ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SubTitle&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ISRC&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::ISRC |ISRC ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;cuePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;InitialKey&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Language&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MediaType&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RatingString&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebCommercial&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebCopyright&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebFilepage&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebArtist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebSource&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebRadio&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebPayment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebPublisher&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebUser&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OrigYear&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::OriginalYear |OriginalYear ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tempo&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Tempo |Tempo ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Mood&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Mood |Mood ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Occasion&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Occasion |Occasion ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Quality&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Quality |Quality ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lyrics&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Lyrics |Lyrics ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| [[ISDBSongData::Comment |Comment ]]&lt;br /&gt;
| Property Get/Let &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ExtendedTags&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=RemoteClients_table&amp;diff=11393</id>
		<title>RemoteClients table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=RemoteClients_table&amp;diff=11393"/>
		<updated>2024-04-11T16:41:17Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AutoConversions&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MAC&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IP&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CustomizeAC&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CustomizeContent&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;NotSharedCustomNodes&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ShareAllPlaylists&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ShareAllCollections&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastAccessTime&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Podcasts_table&amp;diff=11392</id>
		<title>Podcasts table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Podcasts_table&amp;diff=11392"/>
		<updated>2024-04-11T16:40:25Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}, formatting, and added asterisks to non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PodcastName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Health Update&lt;br /&gt;
| The Name of the Podcast feed&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PodcastUrl&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| http://www.nytimes.com/services/xml/rss/nyt/podcasts/healthupdate.xml&lt;br /&gt;
| Podcast feed URL&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Generator&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| The New York Times&lt;br /&gt;
| Generator of the feed (&amp;lt;itunes:author&amp;gt; XML tag)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ImageLink&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| http://graphics.nytimes.com/images/apps/podcasts/healthupdate.jpg	&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CachedImageLink&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| C:\Users\username\AppData\Roaming\MediaMonkey5\Thumbs\80\6JY1YHN11VECYHF3-200px.jpg	&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WebLink&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| http://www.nytimes.com&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CustomizeRules&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 1 = customize rules for the feed, 0 = take global podcast rules (avail. in Options)&lt;br /&gt;
| Whether feed settings should be customized or taken from global settings &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DelEpisodes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 1 = Delete episodes older than..., 0 = don&#039;t delete episodes older than&lt;br /&gt;
| Whether episodes should be automatically deleted&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DelOnlyListened&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0 = unticked , 1 = ticked&lt;br /&gt;
| [x] Delete only if they have been listened to&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RetainEpisodes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0 = unticked , 1 = ticked&lt;br /&gt;
| Activate the [x] Always retain the ... checkbox&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RetainNumber&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0 (x=1), 1 (x=2), 2 (x=3), 3 (x=5), 4 (x=10)&lt;br /&gt;
| Always retain the X most recent episodes&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;EpisodeAge&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
  0 = EPISODEAGE_1_DAY&lt;br /&gt;
  1 = EPISODEAGE_3_DAYS&lt;br /&gt;
  2 = EPISODEAGE_1_WEEK&lt;br /&gt;
  3 = EPISODEAGE_2_WEEKS&lt;br /&gt;
  4 = EPISODEAGE_1_MONTH&lt;br /&gt;
| Delete episodes older than X&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DownloadType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|   &lt;br /&gt;
  0 = DOWNLOAD_ALL&lt;br /&gt;
  1 = DOWNLOAD_RECENT_1&lt;br /&gt;
  2 = DOWNLOAD_RECENT_2&lt;br /&gt;
  3 = DOWNLOAD_RECENT_5&lt;br /&gt;
  4 = DOWNLOAD_RECENT_10&lt;br /&gt;
  5 = DOWNLOAD_RECENT_20&lt;br /&gt;
  6 = DOWNLOAD_NOTHING&lt;br /&gt;
&lt;br /&gt;
New for 3.1&lt;br /&gt;
 DOWNLOAD_RECENT_1_DAY  = 7&lt;br /&gt;
 DOWNLOAD_RECENT_2_DAYS = 8&lt;br /&gt;
 DOWNLOAD_RECENT_3_DAYS = 9&lt;br /&gt;
 DOWNLOAD_RECENT_WEEK   = 10&lt;br /&gt;
 DOWNLOAD_RECENT_2_WEEK = 11&lt;br /&gt;
 DOWNLOAD_RECENT_MONTH  = 12&lt;br /&gt;
 DOWNLOAD_OLDEST_1      = 13&lt;br /&gt;
 DOWNLOAD_OLDEST_2      = 14&lt;br /&gt;
 DOWNLOAD_OLDEST_5      = 15&lt;br /&gt;
 DOWNLOAD_OLDEST_10     = 16&lt;br /&gt;
 DOWNLOAD_OLDEST_20     = 17&lt;br /&gt;
| How many of the most recent episodes should be download when available   &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| The New York Times&#039;s Jane Brody, &amp;quot;Personal Health&amp;quot; columnist, discusses the latest health news.&lt;br /&gt;
| Description of the feed&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OverwriteTags&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0 = unticked , 1 = ticked &lt;br /&gt;
| Overwrite Episode MP3 tags from feed&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ShowRemovedEpisodes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0 = unticked , 1 = ticked &lt;br /&gt;
| Show Removed Episodes in feed list&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=PodcastEpisodes_table&amp;diff=11391</id>
		<title>PodcastEpisodes table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=PodcastEpisodes_table&amp;diff=11391"/>
		<updated>2024-04-11T16:38:59Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}, formatting, added missing duration field, and asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| Primary key&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPodcast&#039;&#039;&#039; &lt;br /&gt;
| INTEGER&lt;br /&gt;
| ID&lt;br /&gt;
| Link to Podcasts table&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDTrack&#039;&#039;&#039; &lt;br /&gt;
| INTEGER&lt;br /&gt;
| -1(Not Downloaded),ID&lt;br /&gt;
| Link to Songs table&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Downloaded&#039;&#039;&#039; &lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0(Not Downloaded), 1(Downloaded)&lt;br /&gt;
| Episode download status&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;title&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| NYT: Health Update for 04/01/2008&lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;title&amp;gt;. Also stored in ID3 Title tag.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;autor&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| Jane Brody of The New York Times&lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;author&amp;gt;. Also stored in ID3 Artist tag.&lt;br /&gt;
Note that the field &#039;&#039;&#039;is&#039;&#039;&#039; named &amp;quot;autor&amp;quot; and not &amp;quot;author&amp;quot;. This is a typo in the code but it is being left as-is for backwards compatibility.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;link&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;link&amp;gt;. Infrequently used.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;description&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| The effectiveness of weight loss drugs.&lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;description&amp;gt;. Also stored in ID3 Comment tag.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;subtitle&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| From &amp;lt;channel&amp;gt;&amp;lt;subtitle&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;summary&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| From &amp;lt;channel&amp;gt;&amp;lt;summary&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PubDate&#039;&#039;&#039; &lt;br /&gt;
| REAL&lt;br /&gt;
| 39535.447916667&lt;br /&gt;
| Publication date. From &amp;lt;item&amp;gt;&amp;lt;pubdate&amp;gt;. Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;NetSource&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| http://podcasts.nytimes.com/podcasts/2008/03/28/01healthupdate.mp3&lt;br /&gt;
| URL for media file. From &amp;lt;item&amp;gt;&amp;lt;enclosure url&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;keywords&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;keywords&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;duration&#039;&#039;&#039; &lt;br /&gt;
| TEXT*&lt;br /&gt;
| 1:03&lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;itunes:duration&amp;gt;&lt;br /&gt;
This is the self-reported duration of the podcast from the XML, which may or may not be accurate to the real duration of the audio file.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;category&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| News &lt;br /&gt;
| From &amp;lt;item&amp;gt;&amp;lt;category&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;mime&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| audio/mpeg &lt;br /&gt;
| MIME type of the NetSource file. From &amp;lt;item&amp;gt;&amp;lt;enclosure type&amp;gt;&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GUID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| http://podcasts.nytimes.com/podcasts/2008/03/28/01healthupdate.mp3&lt;br /&gt;
| Globally Unique Identifier&lt;br /&gt;
Added in version 3.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ViewStatus&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
 0 = VS_VISIBLE&lt;br /&gt;
 1 = VS_HIDDEN&lt;br /&gt;
| Show Removed Episode&lt;br /&gt;
Added in version 3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: iTunes feed tags take precedence over standard tags. e.g. &amp;lt;iTunes:author&amp;gt; is used in preference to &amp;lt;author&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=PodcastDirs_table&amp;diff=11390</id>
		<title>PodcastDirs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=PodcastDirs_table&amp;diff=11390"/>
		<updated>2024-04-11T16:23:44Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Formatting, {{DatabaseTablesList}}, and updated cache path example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| Primary Key&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DirName&#039;&#039;&#039; &lt;br /&gt;
| TEXT&lt;br /&gt;
| Digital Podcast&lt;br /&gt;
| Directory name from &amp;lt;opml&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Type&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 0(OPML)&lt;br /&gt;
| Directory Type. Currently only OPML is supported.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DirUrl&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| http://www.digitalpodcast.com/opml/digitalpodcast.opml&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CachePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\Temp\7E8A.opml &lt;br /&gt;
| Path to local cached copy of OPML directory.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Albums_table&amp;diff=11389</id>
		<title>Albums table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Albums_table&amp;diff=11389"/>
		<updated>2024-04-11T16:21:59Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The name(s) of the AlbumArtist(s)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The Name of the Album&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Year&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 20100521&lt;br /&gt;
| Was not in use until version 5.0.&lt;br /&gt;
The first 4 digits are the year, and the last 4 digits are the month and then day. The example is May 21, 2010.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Album level comment&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tracks&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Counter by trigger (0 to inf.)&lt;br /&gt;
| Count of Songs linked to the Album&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;&#039;MBGID&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| bfd86854-99cb-496e-b7c4-1c58c928ba1d&lt;br /&gt;
| ID of the matching release on MusicBrainz.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;&#039;MBRGGID&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| 7a83ecca-b88e-3eab-b769-8d72dde013f7&lt;br /&gt;
| ID of the matching release group on MusicBrainz.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;&#039;LastTimeShown&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;&#039;TVDBID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|- &lt;br /&gt;
| &#039;&#039;&#039;RATING&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Connections ==&lt;br /&gt;
* Songs table&lt;br /&gt;
* Artists table (via the ArtistsAlbums table)&lt;br /&gt;
* ...&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Artists_table&amp;diff=11388</id>
		<title>Artists table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Artists_table&amp;diff=11388"/>
		<updated>2024-04-11T16:20:55Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Imagine Dragons&lt;br /&gt;
| Name of the &amp;quot;Person&amp;quot;. (This field should be named Person.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
| Description of the artist. &lt;br /&gt;
MediaMonkey 5.0 and later may automatically populate this field from a web search. &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tracks&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Artist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Albums&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as AlbumArtist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Authors&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Composer.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Conducts&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Conductor.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lyrics&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Lyricist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureDataHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| FVGQBM43GJ83JVRZ&lt;br /&gt;
| First 16 digits of a MD5 hash of the cover image saved for this &amp;quot;Person&amp;quot;.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MBGID&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| 012151a8-0f9a-44c9-997f-ebd68b5389f9&lt;br /&gt;
| ID of the matching artist on MusicBrainz.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastTimeShown&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| 45173.1271521528&lt;br /&gt;
| Last time the artist was displayed in the UI. Formatted as the number of days since December 30, 1899.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11387</id>
		<title>ArtistsAlbums table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11387"/>
		<updated>2024-04-11T16:20:21Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDArtist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the AlbumArtist. (ID of the &amp;quot;Artist&amp;quot; in the Artists table.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDAlbum&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Album. (ID of the Album in the Albums table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ArtistsSongs_table&amp;diff=11386</id>
		<title>ArtistsSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ArtistsSongs_table&amp;diff=11386"/>
		<updated>2024-04-11T16:20:01Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PersonType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| 1=Artist or AlbumArtist, 3=Composer, 4=Conductor, 5=Lyricist, 6=Producer, 7=Actor, 8 = Publisher&lt;br /&gt;
| Specifies the PersonType relation between the Song and the &amp;quot;Artist&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDArtist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the &amp;quot;Artist&amp;quot;. (ID of the &amp;quot;Artist&amp;quot; in the Artists table.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Song. (ID of the Song in the Songs table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Covers_table&amp;diff=11385</id>
		<title>Covers table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Covers_table&amp;diff=11385"/>
		<updated>2024-04-11T16:19:44Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: added asterisk for non IUNICODE field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverOrder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverPath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| filename&lt;br /&gt;
| Name of cover file in folder (if applicable)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverStorage&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cover Description&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Any&lt;br /&gt;
| Info/Comment about the cover&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| This is an enum.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureType&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| image/bmp, image/jpg, image/jpeg, image/png, etc. &lt;br /&gt;
| Cover picture format&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureDataHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| First 16 digits of a MD5 hash of the cover image.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=DeviceTracks_table&amp;diff=11384</id>
		<title>DeviceTracks table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=DeviceTracks_table&amp;diff=11384"/>
		<updated>2024-04-11T16:18:49Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDDevice&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the associated device in the Devices table.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDTrack&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the associated track in the Songs table.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DevicePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bitrate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SampleRate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Channels&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;isVBR&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlayCount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;UploadTime&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ACSettHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Converted&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreModified&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncID&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SourceInfo&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastMetaHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Devices_table&amp;diff=11383</id>
		<title>Devices table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Devices_table&amp;diff=11383"/>
		<updated>2024-04-11T16:17:28Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Other attributes&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| PRIMARY KEY AUTOINCREMENT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PluginName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SynchAll&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AdvancedSynch&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ClassMusicMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AudiobookMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PodcastMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;VideoPodcastMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;VideoMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicVideoMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TVMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SaveAAToFolder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SaveAAToTag&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RemoveAAFromTag&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RemoveAAByteRate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncAAMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DetailedUSBID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CopyM3U&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlaylistFormat&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UFolder&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UFlags&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyLocations&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyArtists&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyAlbums&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyPlaylists&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UOrganize&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteUnsynch&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteConfirm&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteUnknown&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteConfirmUnknown&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ResyncOnMaskChange&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirSync&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirConfirm&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirSyncMetadata&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SynchOnConnect&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ScanOnConnect&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AllowWifiSync&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeviceID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeviceCaption&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AutoUnmount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DontDelete&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncBackFolders&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ScanFolders&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AutoConversions&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ImagePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WirelessIDString&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CopyToPCFolder&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Invisible&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastAutoSynch&#039;&#039;&#039;&lt;br /&gt;
| FLOAT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastChangedACRulesTm&#039;&#039;&#039;&lt;br /&gt;
| FLOAT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FirstGenre&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FirstArtist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Capacity&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OtherContentSize&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;handlerID&#039;&#039;&#039;&lt;br /&gt;
| TEXT DEFAULT &amp;quot;usb&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;customJSON&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;convertArtwork&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;convertArtworkType&#039;&#039;&#039;&lt;br /&gt;
| STRING DEFAULT &amp;quot;JPG&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;resizeArtwork&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;resizeArtworkMaxRes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 500&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Maximum resolution of artwork when converted for the device.&lt;br /&gt;
Added in version 5.1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11382</id>
		<title>Downloads table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11382"/>
		<updated>2024-04-11T16:16:12Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added asterisk for non IUNICODE field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Destination&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cookie&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RequestBody&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Genre&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesDownloaded&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesTotal&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;StartDate&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AddToLib&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TargetMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Filters_table&amp;diff=11381</id>
		<title>Filters table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Filters_table&amp;diff=11381"/>
		<updated>2024-04-11T16:15:46Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: added asterisk for non IUNICODE field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Pos&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Sort order in the &#039;Manage Filters and Views&#039; window&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The Name of the Filter/View&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cond&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Used internally&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;View&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Used internally&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Player&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ContentType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;criteriaJSON&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Medias_table&amp;diff=11380</id>
		<title>Medias table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Medias_table&amp;diff=11380"/>
		<updated>2024-04-11T16:13:08Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Fixed asterisks in the wrong place&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDMedia&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Internal MM ID number&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SerialNumber&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DriveType&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ShowLabel&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IsAudioCD&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBId&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TOCData&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBQueryState&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBQueryResult&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TurnedSN&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DriveLetter&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Ascii code of drive letter &amp;quot;A&amp;quot;=65&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicBrainzDiscId&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(need more info in each)&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Playlists_table&amp;diff=11379</id>
		<title>Playlists table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Playlists_table&amp;diff=11379"/>
		<updated>2024-04-11T16:12:43Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}, Added missing MM4 fields, and added asterisks for non IUNICODE fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Value Type&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Possible Values&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPlaylist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| Assigned Playlist Number&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlaylistName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Title&lt;br /&gt;
| Playlist Name&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ParentPlaylist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| [IDPlaylist]&lt;br /&gt;
| Playlist Parent (One level up in the Tree Node)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IsAutoPlaylist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| 0=normal playlist 1=autoplaylist&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;QueryData&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;srcMedia&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;srcPath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Persistent&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastModified&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Last time the playlist was modified. Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastContentHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| First 16 digits of an MD5 hash of the list of track IDs in the playlist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GUID&#039;&#039;&#039;*&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDFilter&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT -1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Synchronize&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureDataHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| 212WNGZVRZSKG56U&lt;br /&gt;
| First 16 digits of a MD5 hash of the cover image saved for this playlist.&lt;br /&gt;
Added in 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ImageCollageInfo&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| 298,561,565,1061,1968,2133,2973,3363,4552	&lt;br /&gt;
| List of &#039;&#039;&#039;idsong&#039;&#039;&#039; attributes in the Covers table for the covers that form the collage of art for this playlist.&lt;br /&gt;
Added in 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;QueryDataJSON&#039;&#039;&#039;&lt;br /&gt;
| TEXT*&lt;br /&gt;
| &lt;br /&gt;
| Added in 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11378</id>
		<title>MediaMonkey Database tables</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11378"/>
		<updated>2024-04-11T16:08:38Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Database Structure (MM4)|[Database Structure]]]&lt;br /&gt;
*[[Albums table|Albums]]&lt;br /&gt;
*[[Artists table|Artists]]&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]&lt;br /&gt;
*[[Medias table|Medias]]&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]]&lt;br /&gt;
*[[Playlists table|Playlists]]&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]]&lt;br /&gt;
*[[Podcasts table|Podcasts]]&lt;br /&gt;
*[[Radio table|Radio]]&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]]&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11377</id>
		<title>MediaMonkey Database tables</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11377"/>
		<updated>2024-04-11T16:08:17Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Database Structure (MM4)|[Back]]]&lt;br /&gt;
*[[Albums table|Albums]]&lt;br /&gt;
*[[Artists table|Artists]]&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]&lt;br /&gt;
*[[Medias table|Medias]]&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]]&lt;br /&gt;
*[[Playlists table|Playlists]]&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]]&lt;br /&gt;
*[[Podcasts table|Podcasts]]&lt;br /&gt;
*[[Radio table|Radio]]&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]]&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=PlaylistSongs_table&amp;diff=11376</id>
		<title>PlaylistSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=PlaylistSongs_table&amp;diff=11376"/>
		<updated>2024-04-11T16:02:40Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and removed &amp;quot;need more info&amp;quot; since there&amp;#039;s a description for each field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
The PlaylistSongs table can be used for retrieving song IDs from a given playlist. Every song in every playlist resides in this table.&lt;br /&gt;
&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary Key&lt;br /&gt;
| Each playlist entry has a unique identifier&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPlaylist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary key from the [[Playlists table|Playlists]] table.&lt;br /&gt;
| The playlist that this entry&#039;s song resides in.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPlaylistSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary key from the [[Songs table|Songs]] table.&lt;br /&gt;
| The song to be used for this entry in the given playlist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SongOrder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Zero-based index, ordering the entry in the playlist.&lt;br /&gt;
| Entries in a database are unordered, so the playlist order must be made explicit. All numbers must be filled in, starting with zero.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=PlaylistSongs_table&amp;diff=11375</id>
		<title>PlaylistSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=PlaylistSongs_table&amp;diff=11375"/>
		<updated>2024-04-11T16:01:42Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
The PlaylistSongs table can be used for retrieving song IDs from a given playlist. Every song in every playlist resides in this table.&lt;br /&gt;
&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary Key&lt;br /&gt;
| Each playlist entry has a unique identifier&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPlaylist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary key from the [[Playlists table|Playlists]] table.&lt;br /&gt;
| The playlist that this entry&#039;s song resides in.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDPlaylistSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Primary key from the [[Songs table|Songs]] table.&lt;br /&gt;
| The song to be used for this entry in the given playlist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SongOrder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| Zero-based index, ordering the entry in the playlist.&lt;br /&gt;
| Entries in a database are unordered, so the playlist order must be made explicit. All numbers must be filled in, starting with zero.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(4 fields total, but need more info in each)&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Medias_table&amp;diff=11374</id>
		<title>Medias table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Medias_table&amp;diff=11374"/>
		<updated>2024-04-11T16:01:20Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and capitalization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDMedia&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Internal MM ID number&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SerialNumber&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DriveType&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Label&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ShowLabel&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IsAudioCD&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Location&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBId&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TOCData&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBQueryState&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CDDBQueryResult&#039;&#039;&#039;*&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TurnedSN&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DriveLetter&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Ascii code of drive letter &amp;quot;A&amp;quot;=65&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicBrainzDiscId&#039;&#039;&#039;*&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(need more info in each)&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ListsSongs_table&amp;diff=11373</id>
		<title>ListsSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ListsSongs_table&amp;diff=11373"/>
		<updated>2024-04-11T15:59:07Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the Song. (ID of the Song in the Songs table.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDListType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| 1=Tempo, 2=Mood, 3=Occasion, 4=Quality &lt;br /&gt;
| ID of the ListType. (IDListType in the Lists table.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDList&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the List. (ID of the List in the Lists table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Lists_table&amp;diff=11372</id>
		<title>Lists table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Lists_table&amp;diff=11372"/>
		<updated>2024-04-11T15:58:43Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDListType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| 1=Tempo, 2=Mood, 3=Occasion, 4=Quality&lt;br /&gt;
| Type of Classification&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TextData&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Contains the actual Tempo, Mood, Occasion or Quality. Listed as subnodes of the selected Classification&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SortOrder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| The sortorder of the TextData in the tree&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=GenresSongs_table&amp;diff=11371</id>
		<title>GenresSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=GenresSongs_table&amp;diff=11371"/>
		<updated>2024-04-11T15:58:19Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDGenre&#039;&#039;&#039;&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the Genre. (ID of the Genre in the Genres table.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Song. (ID of the Song in the Songs table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Genres_table&amp;diff=11370</id>
		<title>Genres table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Genres_table&amp;diff=11370"/>
		<updated>2024-04-11T15:56:05Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDGenre&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GenreName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The name of the Genre&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Not really in use&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;UsageCount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of Songs linked to the Genre&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Genres_table&amp;diff=11369</id>
		<title>Genres table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Genres_table&amp;diff=11369"/>
		<updated>2024-04-11T15:55:17Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDGenre&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;GenreName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The name of the Genre&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Not really in use&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;UsageCount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of Songs linked to the Genre&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Filters_table&amp;diff=11368</id>
		<title>Filters table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Filters_table&amp;diff=11368"/>
		<updated>2024-04-11T15:54:53Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Pos&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Sort order in the &#039;Manage Filters and Views&#039; window&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| The Name of the Filter/View&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cond&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Used internally&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;View&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Used internally&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Player&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ContentType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;criteriaJSON&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11367</id>
		<title>Downloads table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11367"/>
		<updated>2024-04-11T15:54:44Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Destination&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cookie&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RequestBody&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Genre&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesDownloaded&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesTotal&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;StartDate&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AddToLib&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TargetMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Devices_table&amp;diff=11366</id>
		<title>Devices table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Devices_table&amp;diff=11366"/>
		<updated>2024-04-11T15:54:32Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}} and formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Other attributes&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| PRIMARY KEY AUTOINCREMENT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PluginName&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SynchAll&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AdvancedSynch&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ClassMusicMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AudiobookMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PodcastMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;VideoPodcastMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;VideoMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MusicVideoMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TVMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SaveAAToFolder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SaveAAToTag&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RemoveAAFromTag&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RemoveAAByteRate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncAAMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DetailedUSBID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CopyM3U&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlaylistFormat&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UFolder&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UFlags&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyLocations&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyArtists&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyAlbums&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UCopyPlaylists&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;M3UOrganize&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteUnsynch&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteConfirm&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteUnknown&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeleteConfirmUnknown&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ResyncOnMaskChange&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirSync&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirConfirm&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BiDirSyncMetadata&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SynchOnConnect&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ScanOnConnect&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AllowWifiSync&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeviceID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DeviceCaption&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AutoUnmount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DontDelete&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncBackFolders&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ScanFolders&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AutoConversions&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| COLLATE IUNICODE&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ImagePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;WirelessIDString&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CopyToPCFolder&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Invisible&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastAutoSynch&#039;&#039;&#039;&lt;br /&gt;
| FLOAT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastChangedACRulesTm&#039;&#039;&#039;&lt;br /&gt;
| FLOAT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FirstGenre&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;FirstArtist&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Capacity&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;OtherContentSize&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;handlerID&#039;&#039;&#039;&lt;br /&gt;
| TEXT DEFAULT &amp;quot;usb&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;customJSON&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;convertArtwork&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;convertArtworkType&#039;&#039;&#039;&lt;br /&gt;
| STRING DEFAULT &amp;quot;JPG&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;resizeArtwork&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Added in version 5.1&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;resizeArtworkMaxRes&#039;&#039;&#039;&lt;br /&gt;
| INTEGER DEFAULT 500&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| Maximum resolution of artwork when converted for the device.&lt;br /&gt;
Added in version 5.1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=DeviceTracks_table&amp;diff=11365</id>
		<title>DeviceTracks table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=DeviceTracks_table&amp;diff=11365"/>
		<updated>2024-04-11T15:51:18Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDDevice&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the associated device in the Devices table.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDTrack&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the associated track in the Songs table.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DevicePath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Rating&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Bitrate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SampleRate&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Channels&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;isVBR&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PlayCount&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;UploadTime&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ACSettHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Status&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Converted&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PreModified&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SyncID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;SourceInfo&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastMetaHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Covers_table&amp;diff=11364</id>
		<title>Covers table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Covers_table&amp;diff=11364"/>
		<updated>2024-04-11T15:51:09Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;IDSong&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverOrder&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverPath&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| filename&lt;br /&gt;
| Name of cover file in folder (if applicable)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverStorage&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cover Description&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Any&lt;br /&gt;
| Info/Comment about the cover&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;CoverType&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| This is an enum.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureType&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| image/bmp, image/jpg, image/jpeg, image/png, etc. &lt;br /&gt;
| Cover picture format&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureDataHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| First 16 digits of a MD5 hash of the cover image.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ArtistsSongs_table&amp;diff=11363</id>
		<title>ArtistsSongs table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ArtistsSongs_table&amp;diff=11363"/>
		<updated>2024-04-11T15:50:15Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PersonType&lt;br /&gt;
| INTEGER &lt;br /&gt;
| 1=Artist or AlbumArtist, 3=Composer, 4=Conductor, 5=Lyricist, 6=Producer, 7=Actor, 8 = Publisher&lt;br /&gt;
| Specifies the PersonType relation between the Song and the &amp;quot;Artist&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| IDArtist&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the &amp;quot;Artist&amp;quot;. (ID of the &amp;quot;Artist&amp;quot; in the Artists table.)&lt;br /&gt;
|-&lt;br /&gt;
| IDSong&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Song. (ID of the Song in the Songs table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11362</id>
		<title>ArtistsAlbums table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11362"/>
		<updated>2024-04-11T15:50:02Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| IDArtist&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the AlbumArtist. (ID of the &amp;quot;Artist&amp;quot; in the Artists table.)&lt;br /&gt;
|-&lt;br /&gt;
| IDAlbum&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Album. (ID of the Album in the Albums table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11361</id>
		<title>ArtistsAlbums table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=ArtistsAlbums_table&amp;diff=11361"/>
		<updated>2024-04-11T15:49:54Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: {{DatabaseTablesList}}&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| IDArtist&lt;br /&gt;
| INTEGER &lt;br /&gt;
| &lt;br /&gt;
| ID of the AlbumArtist. (ID of the &amp;quot;Artist&amp;quot; in the Artists table.)&lt;br /&gt;
|-&lt;br /&gt;
| IDAlbum&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| ID of the Album. (ID of the Album in the Albums table.)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Artists_table&amp;diff=11360</id>
		<title>Artists table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Artists_table&amp;diff=11360"/>
		<updated>2024-04-11T15:47:58Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
&lt;br /&gt;
== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| AUTOINCREMENT (1 to inf.)&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| Imagine Dragons&lt;br /&gt;
| Name of the &amp;quot;Person&amp;quot;. (This field should be named Person.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Comment&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
|&lt;br /&gt;
| Description of the artist. &lt;br /&gt;
MediaMonkey 5.0 and later may automatically populate this field from a web search. &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Tracks&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Artist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Albums&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as AlbumArtist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Authors&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Composer.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Conducts&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Conductor.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Lyrics&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Count of tracks where the &amp;quot;Person&amp;quot; appears as Lyricist.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;PictureDataHash&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| FVGQBM43GJ83JVRZ&lt;br /&gt;
| First 16 digits of a MD5 hash of the cover image saved for this &amp;quot;Person&amp;quot;.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;MBGID&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| 012151a8-0f9a-44c9-997f-ebd68b5389f9&lt;br /&gt;
| ID of the matching artist on MusicBrainz.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;LastTimeShown&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| 45173.1271521528&lt;br /&gt;
| Last time the artist was displayed in the UI. Formatted as the number of days since December 30, 1899.&lt;br /&gt;
Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11359</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11359"/>
		<updated>2024-04-11T15:47:15Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: /* Default Mediamonkey 3 and MediaMonkey 4 Database location */ Made database location a bit more clear for MM3-4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey 3.0==&lt;br /&gt;
&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows Vista and Windows 7, before 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Windows 7 through 11 (64-bit), after 2016-01-06:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey v2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11358</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11358"/>
		<updated>2024-04-11T15:38:27Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: /* Default Mediamonkey 3 Database location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey 3.0==&lt;br /&gt;
&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 3 and MediaMonkey 4 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;Windows Vista and Windows 7:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB or (on a Win7-64 platform as of 2016-01-06) C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey v2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11357</id>
		<title>Database Structure</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Database_Structure&amp;diff=11357"/>
		<updated>2024-04-10T19:18:20Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added Pinned, Radio, and URLRequestCache tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DatabaseTablesList}}&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey 3.0==&lt;br /&gt;
&lt;br /&gt;
== Database type ==&lt;br /&gt;
[http://www.sqlite.org SQLite] version 3&lt;br /&gt;
* Encoding: UTF-16le&lt;br /&gt;
* Text collate IUNICODE (except where indicated with a (*))&lt;br /&gt;
&lt;br /&gt;
== Additions to SQLite ==&lt;br /&gt;
Check out [http://www.sqlite.org/docs.html SQLite documentation]. MediaMonkey adds some more functions that you can use in SQL queries:&lt;br /&gt;
&lt;br /&gt;
=== Collations ===&lt;br /&gt;
* IUNICODE - Unicode language neutral case insensitive (Post [http://www.mediamonkey.com/forum/viewtopic.php?p=127635#127635 1] [http://www.mediamonkey.com/forum/viewtopic.php?p=79915#79915 2] by Jiri with more detail)&lt;br /&gt;
* USERLOCALE - Sorts according to users locale in regional settings. (Implemented in 3.1.2.1279)&lt;br /&gt;
* NUMERICSTRING - Natural song order respecting numbers stored as strings. Useful for Track# and Disc# fields.&lt;br /&gt;
&lt;br /&gt;
Due the customized collations MediaMonkey for Windows extension Library can be downloaded from&lt;br /&gt;
http://www.happymonkeying.com/beta/SQLite3MMExt.dll and then used in any app that can load and use external extension like&lt;br /&gt;
free Database Browser for SQLite&lt;br /&gt;
&lt;br /&gt;
=== Functions ===&lt;br /&gt;
* HASSUBFOLDERS(string) - Used internally by MediaMonkey.&lt;br /&gt;
* INSTR(string1, string2) - Returns 1-based index of the first occurrence of string2 in string1, if not found 0 is returned. Case sensitive.&lt;br /&gt;
* LIKE(string1, string2) - Used to replace internal SQLite LIKE operator with one that supports Unicode strings. SEE NOTE!&lt;br /&gt;
* NEXTPATHPART(string) - Used internally by MediaMonkey.&lt;br /&gt;
* SIN(number) - Mathematical sinus function.&lt;br /&gt;
* STRICOMPW(string1, string2) - Compares two Unicode strings, case insensitive.&lt;br /&gt;
* UPPERW(string) - Unicode string upper case.&lt;br /&gt;
* GETEXTENSION(string) - Returns the extension from a filename. (Introduced in MM 3.1)&lt;br /&gt;
* SOUNDEX(string) - Returns a four-character string, based on how the word is pronounced in English. Similar spelled names are supposed to returns the same string. (Introduced in MM 3.1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Note regarding LIKE ====&lt;br /&gt;
This MM-specific implementation of LIKE, automatically uses the @-sign as the escape character and it is always applied.&lt;br /&gt;
It means that you need to modify the SearchString to correctly use this function.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is one example of an VBScript function which prepares the search string correctly.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
Function FixLikeSearchString(Str)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;@&amp;quot;,&amp;quot;@@&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;_&amp;quot;,&amp;quot;@_&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;%&amp;quot;,&amp;quot;@%&amp;quot;)&lt;br /&gt;
  Str = Replace(Str,&amp;quot;&#039;&amp;quot;,&amp;quot;&#039;&#039;&amp;quot;) &#039;&amp;lt;--- Single quotes are escaped with another single quote&lt;br /&gt;
  FixLikeSearchString=Str&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you for some reason, within an SQL-statement, need to link two fields using LIKE (instead of =) then use this syntax:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SomeField LIKE REPLACE(REPLACE(REPLACE(SomeOtherField,&#039;@&#039;,&#039;@@&#039;)&#039;_&#039;,&#039;@_&#039;)&#039;%&#039;,&#039;@%&#039;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 3 Database location ==&lt;br /&gt;
&#039;&#039;&#039;Windows XP:&#039;&#039;&#039; C:\Documents and Settings\&amp;lt;USERNAME&amp;gt;\Local Settings\Application Data\MediaMonkey\MM.DB&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;Windows Vista and Windows 7:&#039;&#039;&#039; C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Local\MediaMonkey\MM.DB or (on a Win7-64 platform as of 2016-01-06) C:\Users\&amp;lt;USERNAME&amp;gt;\AppData\Roaming\MediaMonkey\MM.DB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: &#039;&#039;When you are looking for the default mediamonkey.ini or mm.db, you may have to enable &amp;quot;View hidden/system files&amp;quot; in your windows explorer options or search&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Default Mediamonkey 2 Database location ==&lt;br /&gt;
My Documents\My Music\Mediamonkey\Mediamonkey.mdb&lt;br /&gt;
&lt;br /&gt;
== Used data types ==&lt;br /&gt;
&#039;&#039;&#039;INTEGER&#039;&#039;&#039; The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;REAL&#039;&#039;&#039; The value is a floating point value, stored as an 8-byte IEEE floating point number.&lt;br /&gt;
&amp;lt;br&amp;gt;&#039;&#039;&#039;TEXT&#039;&#039;&#039; The value is a text string, stored using the database encoding (UTF-16-LE).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structure explanation ==&lt;br /&gt;
The most important table is the &#039;&#039;Songs&#039;&#039; table, which is the starting point for all song-specific info. To allow rapid requests, most of the information is present in the table itself, e.g. the Artist name is spelled out.&lt;br /&gt;
The link between table Songs and other tables like Artists, Albums, ... happens with intermediary tables, e.g. ArtistsSongs. This allows us to assign multiple songs to one artist, AND multiple artists to one song.&lt;br /&gt;
&lt;br /&gt;
The database contains custom events, called &amp;quot;triggers&amp;quot;, that are executed when e.g. an artist is assigned to a track. For that example, the trigger will automatically increment the Artists table&#039;s Tracks counter field.&lt;br /&gt;
&lt;br /&gt;
== Database tables ==&lt;br /&gt;
*[[Albums table|Albums]]: Contains all Albums and some Album specific info&lt;br /&gt;
*[[Artists table|Artists]]: Contains all Artists, AlbumArtists, Composers, Conductors and Lyricists with their track count&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]: Specifies the relation between an Album and its AlbumArtist(s)&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]: Specifies the relation between a Song and its Artist(s), Composer(s), Conductor(s) and Lyricist(s)&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]: Contains all Filters/Views configured in MM&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]: Contains all Genres with track Count&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]: Specifies the relation between a Song and its Genre(s)&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]: Contains all Classifications and their sort order in the tree&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]: Specifies the relation between a Song and its various Classifications&lt;br /&gt;
*[[Medias table|Medias]]: Contains all the media sources that have been used&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]: Stores links to Pinned items (Added in version 5.0)&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]] Specifies the relation between a Song and what &#039;&#039;&#039;Static Playlist(s)&#039;&#039;&#039; it appears in&lt;br /&gt;
*[[Playlists table|Playlists]] : Contains all Static Playlists and Auto-Playlists&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]] Specifies the relation between a Song and a Podcast&lt;br /&gt;
*[[Podcasts table|Podcasts]] Specifies podcast subscriptions &lt;br /&gt;
*[[Radio table|Radio]]: Stores links to the Radio node (Added in version 5.0)&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]] : Contains all songs with all their properties&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]: Caches the results of some web requests.&lt;br /&gt;
&lt;br /&gt;
== Database structure == &lt;br /&gt;
&#039;&#039;(only most important tables)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:MM3DBStructure.PNG|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==MediaMonkey v2.5 and lower==&lt;br /&gt;
&lt;br /&gt;
===Database structure===&lt;br /&gt;
[[Image:DatabaseRelationsMM2.gif|center|650px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===AddSongInfo===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;TextData&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 100 || AIF_COPYRIGHT || Copyright&lt;br /&gt;
|-&lt;br /&gt;
| 101 || AIF_PUBLISHER || Publisher&lt;br /&gt;
|-&lt;br /&gt;
| 102 || AIF_ENCODER || Encoder&lt;br /&gt;
|-&lt;br /&gt;
| 103 || AIF_ENCODEDBY || Encoded By&lt;br /&gt;
|-&lt;br /&gt;
| 200 || AIF_LYRICIST || Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 201 || AIF_BAND || Band&lt;br /&gt;
|-&lt;br /&gt;
| 202 || AIF_CONDUCTOR || Conductor&lt;br /&gt;
|-&lt;br /&gt;
| 203 || AIF_REMIXER || Remixer&lt;br /&gt;
|-&lt;br /&gt;
| 204 || AIF_INVOLVEDPEOPLE || Involved People&lt;br /&gt;
|-&lt;br /&gt;
| 205 || AIF_MUSICCOMPOSER || (See note)&lt;br /&gt;
|-&lt;br /&gt;
| 300 || AIF_ORIGTITLE || Original Title&lt;br /&gt;
|-&lt;br /&gt;
| 301 || AIF_ORIGARTIST || Original Artist&lt;br /&gt;
|-&lt;br /&gt;
| 302 || AIF_ORIGLYRICIST || Original Lyricist&lt;br /&gt;
|-&lt;br /&gt;
| 400 || AIF_GROUPDESC || &lt;br /&gt;
|-&lt;br /&gt;
| 401 || AIF_SUBTITLE || &lt;br /&gt;
|-&lt;br /&gt;
| 402 || AIF_ISRC || &lt;br /&gt;
|-&lt;br /&gt;
| 500 || AIF_INITIALKEY || &lt;br /&gt;
|-&lt;br /&gt;
| 501 || AIF_LANGUAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 502 || AIF_MEDIATYPE || &lt;br /&gt;
|-&lt;br /&gt;
| 503 || AIF_RATINGSTRING || &lt;br /&gt;
|-&lt;br /&gt;
| 1000 || AIF_WEB_COMMERCIAL || &lt;br /&gt;
|-&lt;br /&gt;
| 1001 || AIF_WEB_COPYRIGHT || &lt;br /&gt;
|-&lt;br /&gt;
| 1002 || AIF_WEB_FILEPAGE || &lt;br /&gt;
|-&lt;br /&gt;
| 1003 || AIF_WEB_ARTIST || &lt;br /&gt;
|-&lt;br /&gt;
| 1004 || AIF_WEB_SOURCE || &lt;br /&gt;
|-&lt;br /&gt;
| 1005 || AIF_WEB_RADIO || &lt;br /&gt;
|-&lt;br /&gt;
| 1006 || AIF_WEB_PAYMENT || &lt;br /&gt;
|-&lt;br /&gt;
| 1007 || AIF_WEB_PUBLISHER || &lt;br /&gt;
|-&lt;br /&gt;
| 1100 || AIF_WEB_USER || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Apparently, the value for the composer is stored in the Author field of the Songs table rather than in the AddSongInfo table under MediaMonkey 2.5. The situation in other versions is unknown.&lt;br /&gt;
&lt;br /&gt;
===AddSongInfoInt===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;IntData&amp;quot;&#039;&#039; (linked to Lists.ID)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DataType&#039;&#039;&#039; (partially linked to Lists.IDListType)&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 10000 || AIF_ORIGYEAR || Original Year&lt;br /&gt;
|-&lt;br /&gt;
| 10101 || AIF_TEMPO || Tempo&lt;br /&gt;
|-&lt;br /&gt;
| 10102 || AIF_MOOD || Mood&lt;br /&gt;
|-&lt;br /&gt;
| 10103 || AIF_OCCASION || Occasion&lt;br /&gt;
|-&lt;br /&gt;
| 10104 || AIF_QUALITY || Quality&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Memos===&lt;br /&gt;
&#039;&#039;Value field is &amp;quot;MemoText&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MemoType&#039;&#039;&#039;&lt;br /&gt;
{| border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || AIF Code || Description&lt;br /&gt;
|-&lt;br /&gt;
| 20000 || AIF_LYRICS || Lyrics&lt;br /&gt;
|-&lt;br /&gt;
| 20001 || AIF_COMMENT || Comment&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11356</id>
		<title>MediaMonkey Database tables</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=MediaMonkey_Database_tables&amp;diff=11356"/>
		<updated>2024-04-10T19:18:11Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added Downloads, RemoteClients, Pinned, Radio, and URLRequestCache tables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Albums table|Albums]]&lt;br /&gt;
*[[Artists table|Artists]]&lt;br /&gt;
*[[ArtistsAlbums table|ArtistsAlbums]]&lt;br /&gt;
*[[ArtistsSongs table|ArtistsSongs]]&lt;br /&gt;
*[[Covers table|Covers]]&lt;br /&gt;
*[[DBInfo table|DBInfo]]&lt;br /&gt;
*[[DeviceFilters table|DeviceFilters]]&lt;br /&gt;
*[[DeviceTracks table|DeviceTracks]]&lt;br /&gt;
*[[Devices table|Devices]]&lt;br /&gt;
*[[Downloads table|Downloads]]&lt;br /&gt;
*[[Filters table|Filters]]&lt;br /&gt;
*[[Folders table|Folders]]&lt;br /&gt;
*[[FoldersHier table|FoldersHier]]&lt;br /&gt;
*[[Genres table|Genres]]&lt;br /&gt;
*[[GenresSongs table|GenresSongs]]&lt;br /&gt;
*[[LastTreePath table|LastTreePath]]&lt;br /&gt;
*[[Lists table|Lists]]&lt;br /&gt;
*[[ListsSongs table|ListsSongs]]&lt;br /&gt;
*[[Medias table|Medias]]&lt;br /&gt;
*[[OrganizeRules table|OrganizeRules]]&lt;br /&gt;
*[[PathProcessing table|PathProcessing]]&lt;br /&gt;
*[[Pinned table|Pinned]]&lt;br /&gt;
*[[Played table|Played]]&lt;br /&gt;
*[[PlaylistSongs table|PlaylistSongs]]&lt;br /&gt;
*[[Playlists table|Playlists]]&lt;br /&gt;
*[[PodcastDirs table|PodcastDirs]]&lt;br /&gt;
*[[PodcastEpisodes table|PodcastEpisodes]]&lt;br /&gt;
*[[Podcasts table|Podcasts]]&lt;br /&gt;
*[[Radio table|Radio]]&lt;br /&gt;
*[[RemoteClients table|RemoteClients]]&lt;br /&gt;
*[[Songs table|Songs]]&lt;br /&gt;
*[[SynchAlbum table|SynchAlbum]]&lt;br /&gt;
*[[SynchArtist table|SynchArtist]]&lt;br /&gt;
*[[SynchLocation table|SynchLocation]]&lt;br /&gt;
*[[SynchPlaylist table|SynchPlaylist]]&lt;br /&gt;
*[[SynchPodcast table|SynchPodcast]]&lt;br /&gt;
*[[URLRequestCache table|URLRequestCache]]&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
	<entry>
		<id>https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11355</id>
		<title>Downloads table</title>
		<link rel="alternate" type="text/html" href="https://www.mediamonkey.com/wiki/index.php?title=Downloads_table&amp;diff=11355"/>
		<updated>2024-04-10T19:12:19Z</updated>

		<summary type="html">&lt;p&gt;Drakinite: Added Downloads table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fields ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Value Type&lt;br /&gt;
! Possible Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;ID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Source&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Destination&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Cookie&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;RequestBody&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Title&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Album&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Artist&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Genre&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesDownloaded&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;BytesTotal&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;StartDate&#039;&#039;&#039;&lt;br /&gt;
| REAL&lt;br /&gt;
| &lt;br /&gt;
| Formatted as the number of days since December 30, 1899.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;AddToLib&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TrackID&#039;&#039;&#039;&lt;br /&gt;
| INTEGER&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;TargetMask&#039;&#039;&#039;&lt;br /&gt;
| TEXT&lt;br /&gt;
| &lt;br /&gt;
| Added in version 5.0&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Drakinite</name></author>
	</entry>
</feed>