Synchronizer selection

The mm-sync service provides many synchronizers designed for various media and storage devices. Some synchronizers can extract the metadata from a certain device, media type, or playlist better than other synchronizers. When mm-sync receives a synchronization request, it selects the best synchronizer to use for the content being synchronized and for the device and media type.

For example, for a CDDA:

  1. The mm-sync service checks if the CD device supports CD-Text and if the Gracenote plugin is enabled.
  2. If CD-Text or Gracenote support is available, mm-sync uses the synchronizer most appropriate for extracting the metadata of the CD files.
  3. If no such synchronizer is available, mm-sync uses its default synchronizer to get the metadata.

Once mm-sync has selected the synchronizer, the service begins updating media information in the database in a multipass process.

Synchronizer ratings

Synchronizers rate themselves based on their ability to handle different types of mediastores, files, and playlists. When it receives a request for a synchronization, mm-sync queries synchronizers for their ratings and compares them to identify the best synchronizer for the task.

Internally, ratings are expressed as integer values of 0 or greater. A value of 0 means the synchronizer doesn't support the device. A value of 1 means it supports the device but is the worst choice, while higher values mean the synchronizer is a better choice. There's no official highest rating, but typically values are between 0 and 100.

The rating values used by synchronizers are similar to those used by metadata plugins, which are libraries that define their own synchronizers that retrieve metadata, sometimes from third-party sources such as MusicBrainz. You can override the default ratings of metadata plugin synchronizers in the configuration file, but you can't override the ratings of the built-in mm-sync synchronizers.

Manual selection of a synchronizer

You can instruct mm-sync to use a specific synchronizer to bypass the automated selection based on ratings.

To request to use a synchronizer from a client application, set the use_synchronizer or force_synchronizer option in the mm_sync_start() API call or sync_start command.

The built-in supported synchronizers are: