Skip to main content

# Mopidy

Mopidy is a headless music server that supports playing music from many standard and non-standard sources such as Pandora, Bandcamp, and Tunein.

multi-scrobbler can scrobble tracks played from any Mopidy backend source, regardless of where you listen to them.

note

You must have Mopidy-HTTP extension enabled for this integration to work.

#### URL​

The URL used to connect to the Mopidy server, set in your file config as `url`. The URL used to connect ultimately must be formed like this:

    Syntax  => [protocol]://[hostname]:[port]/[path]
    Default =>         ws://localhost:6680/mopidy/ws

If any part of this URL is missing multi-scrobbler will use a default value. This also means that if any part of your URL is not standard you must explicitly define it.

Mopidy Configuration

Make sure the hostname and port number match what is found in the Mopidy configuration file `mopidy.conf`:

    [http]
    hostname = localhost
    port = 6680

URL Transform Examples

Examples of a given `url` in your file config and the final URL multi-scrobbler will use to connect to Mopidy:

`url` | Transformed URL
--- | ---
(none set) | `ws://localhost:6680/mopidy/ws`
`mopidy.mydomain.com` | `ws://mopidy.mydomain.com:6680/mopidy/ws/`
`192.168.0.101:3456` | `ws://192.168.0.101:3456/mopidy/ws/`
`mopidy.mydomain.com:80/MOPWS` | `ws://mopidy.mydomain.com:80/MOPWS`

### URI Blacklist/Whitelist​

If you wish to disallow or only allow scrobbling from some sources played through Mopidy you can specify these using `uriBlacklist` or `uriWhitelist` in your config. multi-scrobbler will check the list to see if any string matches the START of the `uri` on a track. If whitelist is used then blacklist is ignored. All strings are case-insensitive.

Example

    {
        "uriBlacklist": ["soundcloud"]
    }

Will prevent multi-scrobbler from scrobbling any Mopidy track that start with a `uri` like `soundcloud:song:MySong-1234`

### Album Blacklist​

For certain sources (Soundcloud) Mopidy does not have all track info (Album) and will instead use "Soundcloud" as the Album name. You can prevent multi-scrobbler from using this bad Album data by adding the fake Album name to this list. Multi-scrobbler will still scrobble the track, just without the bad data. All strings are case-insensitive.

Example

    {
        "albumBlacklist": ["SoundCloud", "Mixcloud"]
    }

If a track would be scrobbled like

    Album: Soundcloud, Track: My Cool Track, Artist: A Cool Artist

then multi-scrobbler will instead scrobble

    Track: My Cool Track, Artist: A Cool Artist

## Configuration​

- ENV
- File
- AIO

Configuration Type

This is configuration for the ENV Config Type.

Environmental Variable | Type | Default | Description
--- | --- | --- | ---
`MOPIDY_ID` | string |  | A globally unique ID EX `myComponentId`
`MOPIDY_NAME` | string | Value of `MOPIDY_ID` | A vanity name EX `My Cool Component`
`MOPIDY_ENABLE` | boolean | true | Should this component be used?
`MOPIDY_URL` | string | ws://localhost:6680/mopidy/ws/ | URL of the Mopidy HTTP server to connect to
`MOPIDY_URI_DENYLIST` | string |  | Do not scrobble tracks whose URI STARTS WITH any of these strings, case-insensitive
`MOPIDY_URI_ALLOWLIST` | string |  | Only scrobble tracks whose URI STARTS WITH any of these strings, case-insensitive
`MOPIDY_ALBUM_DENYLIST` | string | Soundcloud | Remove album data that matches any case-insensitive string from this list when scrobbling,

Bold/Italic = Required

Config Structure

This displays the structure of the File Configuration for a mopidy type Source with all possible properties, their shape, and descriptions/types. Use this to understand how to write a valid config.

Loading ...
Config Example

This displays an example config file of a mopidy Source File Configuration that adheres to the shown Config Structure.

- text mode lets you edit the JSON directly.
- tree mode gives you a guided point-and-click editing experience that always keeps the JSON syntax valid.

Both modes validate that the configuration is correct. Any errors show up as squiggly lines.

important

Only source mopidy configs will validate correctly in the editor but both source and client mopidy configs are allowed in the real `CONFIG/mopidy.json`

After you finish editing, switch to text and then copy all text to get a completed config.

Config Example Mobile Experience

This displays an example config file of a mopidy Source File Configuration that adheres to the shown Config Structure.

The example config file editor is meant for a larger screen experience so only the read-only example is shown. Please use this site on a tablet/laptop/desktop to enable file editor features.

CONFIG/mopidy.json

    [
      {
        "name": "Mopidy Desktop",
        "id": "MyMopidy",
        "enable": true,
        "data": {
          "url": "localhost",
          "uriBlacklist": [],
          "uriWhitelist": [],
          "albumBlacklist": []
        }
      }
    ]

Config Structure

This displays the structure of the all-in-one (`config.json`) configuration with all possible properties, their shape, and descriptions/types. Use this to understand how to write a valid config.

Select the mopidy type from the respective `sources` node below, then expand it.

Loading ...
Config Example

This displays an example config file of a all-in-one (`config.json`) configuration that includes a mopidy Source that adheres to the shown Config Structure.

- text mode lets you edit the JSON directly.
- tree mode gives you a guided point-and-click editing experience that always keeps the JSON syntax valid.

Both modes validate that the configuraion is correct. Any errors show up as squiggly lines.

After you finish editing, switch to text and then copy all text to get a completed config.

Config Example Mobile Experience

This displays an example config file of a all-in-one (`config.json`) configuration that includes a mopidy Source that adheres to the shown Config Structure.

The example config file editor is meant for a larger screen experience so only the read-only example is shown. Please use this site on a tablet/laptop/desktop to enable file editor features.

CONFIG/config.json

    {
      "sources": [
        {
          "name": "Mopidy Desktop",
          "id": "MyMopidy",
          "enable": true,
          "data": {
            "url": "localhost",
            "uriBlacklist": [],
            "uriWhitelist": [],
            "albumBlacklist": []
          },
          "type": "mopidy"
        }
      ]
    }