IMPORTANT NOTE: I don't have enough time to maintain online repositories up to date. Let me know if somebody is willing to do this. DescriptionPlugin allows to automatically install/update/uninstall plugins, skins, icons, etc.
How to install and useExtract content of archive to plugins subfolder of MusicBee installation folder. Run AS ADMINISTRATOR "Setup Add-on Manager" (NOT the "Add-on Manager Setup Tool"!) from 'Plugins' folder. See 'Tools/Add-on Manager...' menu item. Ticked customizations will be installed/updated. Unticked customizations will be uninstalled. Grayed checkboxes mean that customization won't be touched.
To configure plugin go to 'Edit/Preferences/Plugins'.
NOTE 1: You might want to maximize plugin window to see enlarged screenshots.
NOTE 2: Although plugin is heavily based on Google Drive, you don't need to use or have Google account to
download customizations.
NOTE 3: First run of plugin may be very slow, but subsequent runs should be faster due to caching.
NOTE 4: Application icons (unlike toolbar icons) are searched by MusicBee in 'MusicBee\Skins' folder by default, but plugin installs ALL icons to 'MusicBee\Icons' folder. This is not a problem actually, because you can select application icon not from default folder only.
NOTE 5: If you have run 'Setup Add-on Manager' (as ADMINISTRATOR) from 'Plugins' folder and anyway are getting error:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext()
then manually change "<runtime/>" to:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
in file "C:\windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config". You wil need admin rights to do this.
Screenshot
LicenseDo all you want with plugin binary and source code at your own risk.
DownloadStable release, 2015-09-07, only for MusicBee 2.4 or later
BinarySource code won't be published due to security reasonsUse the Latest Update for full plugin functionality.Version history7 september, 2015- Now retrieving metadata from Internet may be canceled
5 september, 2015 - Some bugfixes of Developer Tools
3 september, 2015 - Some bugfixes
- Some optimizatons
- Source code cleanup
1 september, 2015 - Some bugfixes
- Better error handling
- Better caching of online data and thus better performance
- Now new customizations (uploaded after last launch of plugin) are marked with blue 'exclamation' icon
18 august, 2015 - Initial public release, version 4.0.5708
- Several critical bugs are fixed
- Some visual glitches are fixed
- Speed of incremental uploading is improved
8 august, 2015 - Now customization is (re)uploaded only if its last updated date is newer or customization is new
- Minor bugfixes & improvements
- Better error handling
- All available working plugins except for 'MusicBee Remote' (which is still under development) have been uploaded to online repositories.
5 august, 2015 - Some bugfixes
- Now its possible to use common keys (such as space or enter) assigned as hotkey in MusicBee as regular keys in plugin dialogs
Developer instructions
By 'developers' I mean plugin developers, skin and icon creators, etc.
Create empty file 'DevMode.txt' in 'Plugins' folder. In plugin window click on 'gear' button, this will open 'Developer Tools' window. Please don't use Developer Tools just for fun, if you don't intend to upload something useful, because too large number of online repositories may slow down all instances of plugin significantly. Click 'Create repository' button to create local repository. Click 'Register repository' button to register online repository on server. Its possible to associate several online repositories with local repository, but the only sense to do this is to balance load between several Google account, because I'm not sure if there are some bandwidth limitations per Google account. Its recommended to start with just 1 online repository. Add plugins, skins, icons, etc. to local repository, then click 'Upload repository' button, browser window will be opened, grant access to your Google drive for plugin.
NOTE 1:
Its not recommended (but possible) to host the same customization on several local (and associated online) repositories.
NOTE 2:
Its recommended to use 'Arial', 10pt font for descriptions, licenses and version history, so all info for any customization will look consistently. See 'Additional Tagging and Reporting Tools' as an example.
NOTE3:
Its recommended to place link to source files at the end of description. See 'Additional Tagging and Reporting Tools' as an example.
NOTE 4:
Short name for plugins should be the the name of main plugin file without '.dll' extension. For example for 'Additional Tagging and Reporting Tools' short name should be 'mb_TagTools'. For customizations other than plugins short name may be arbitrary.
NOTE 5:
Short name must unique across all repositories. Two customizations with the same short name are considered to be the same customization.
NOTE 6:
Recommended customization icon size is 95px X 95px.
NOTE 7:
Short name may contain only underline symbol, letters and numbers.
NOTE 8:
For visualization (which should be uploaded as regular plugins), icons, theater modes and sometimes for regular plugins you will need non-flat hierarchical folder/file structure. To do this just create in your source folder necessary subfolders, place required files in these subfolders and shorten base path to source folder for every file, e.g. if you want to install 'MySkin.xml' from 'SomeSourceFolder' to 'MusucBee\Skins\My Skins\' folder instead of 'MusicBee\Skins\', create 'My Skins' subfolder in 'SomeSourceFolder', place 'MySkin.xml' into 'SomeSourceFolder\My Skins' and define base path for 'MySkin.xml' as 'SomeSourceFolder'. See folder/file structure below for Additional Tagging and Reporting Tools plugin as an example:

PLEASE HOST YOUR AND ABANDONED CUSTOMIZATIONS! THIS PLUGIN IS USELESS WITHOUT UPLOADERS.
@Steven, could you add to API a function 'UninstallPlugin(string pluginMainFile)'? This function must call plugin's 'Uninstall' method.