<?sphp $this->text('pagetitle') ?>
Home of the Squeezebox™ & Transporter® network music players.

Multi Library plugin

From SqueezeboxWiki

Revision as of 21:52, 8 May 2008 by Erland (Talk | contribs)
Jump to: navigation, search



The standard Slimserver doesn't have any way to divide your slimserver library into different main sections or sub libraries. The Multi Library tries to make a temporary solution available for this problem until real support is available in Slimserver. The plugin makes it possible to divide your music library into different sub libraries.

Some example where this can be useful:

  • Each family member just like to browse his/her own music and not the music of the rest of the family
  • You want to limit the music available on the SqueezeBox on the kids room

Slimserver will still scan and contain the full main library, this plugin does not affect the scanning process at all. The plugin runs directly after the scanning and put each scanned music file into the correct sub library. A specific music file can be part of several sub libraries.

Sub libraries can be defined using:

  • Directory paths
  • Genres
  • Artists
  • Comment tags
  • Lossless/Lossy only
  • All excluding/including other sub libraries

To use the sub libraries you will need the Custom Browse plugin, the standard slimserver menus will still browse the complete library but using the Custom Browse plugin you can define menus that are limited to a specific sub libraries.

The easiest way to create a new library is from the Multi Libary plugin web userinterface.


  1. Download from http://erland.homeip.net/download
  2. Remove any previous version of Multi Library from the Slimserver Plugins directory
  3. Unzip the new version in the Slimserver Plugins directory
  4. Optionally Install other plugins that extends Multi Library with more functionality
  5. When you have installed everything you might also want to look at

Bugs and new features

The current list of known bugs and wishes for new features can be found here:

If you want to encourage future development of this plugin you should also consider making a donation


Downloading and sharing library definitions

Multi Library provides a way to download and share library definitions with other users, this is used in a number of different ways:

  • The latest version of the builtin library types are always available for download, this means that instead of waiting for a new official release of Multi Library you can download a new library directly after it has been corrected by the developer.
  • A user can choose to publish/share a library he has made himself, after publishing this library will be available for download for all other users

When publishing/sharing a library you have the following options

  • You can choose to register, the advantage with this is that other users will see that you are the author for the library so you will get some credit for it. It is also a way to make sure that no one else can modify your shared library. You register by selecting on of the "Publish" links and then selecting "Register & Login" in the Multi Library web interface in your SlimServer.
  • You can choose to publish a library anonymously, this way you don't need to provide any information about yourself but it also means that other persons can update and modify the shared library.

The recommendation is that you register when publishing libraries but its still better that you publish a library anonymously than not publish it at all.

Database structure

The library contents of the libraries defined with the Multi Library plugin is stored in the following database tables:


Contains information about which contributors/artists that have songs in each library. It represents relation between the multilibrary_libraries and contributors tables and can be joined as:

multilibrary_contributor.contributor=contributors.id and multilibrary_contributor.library=multilibrary_libraries.id


Contains information about which albums that have songs in each library. It represents the relation between the multilibrary_libraries and albums tables and can be joined as:

multilibrary_album.album=albums.id and multilibrary_album.library=multilibrary_libraries.id


Contains information about which genres that have songs in each library. It represents the relation between the multilibrary_libraries and genres tables and can be joined as:

multilibrary_genre.genre=genres.id and multilibrary_genre.library=multilibrary_libraries.id


Contains information about which years that have songs in each library. It represents the relation between the multilibrary_libraries and years tables and can be joined as:

multilibrary_year.year=years.id and multilibrary_year.library=multilibrary_libraries.id


Contains information about which songs that exist in each library. It represents the relation between the multilibrary_libraries and tracks tables and can be joined as:

multilibrary_track.track=tracks.id and multilibrary_track.library=multilibrary_libraries.id


Contains all the defined libraries with the following attributes:

  • id - Unique id for the library, will not change unless you delete the library or its configuration file
  • libraryid - A uniqe id of the library in text form, this is basically the library configuration filename without the extension
  • name - The name of the library that should be displayed to the user