### Docker Compose Full Example Source: https://docs.multi-scrobbler.app/installation?runType=docker-compose A comprehensive docker-compose.yml example demonstrating a typical setup with Jellyfin source, Maloja client, specific ports, base URL, user permissions, and optional caching. ```yaml services: multi-scrobbler: image: foxxmd/multi-scrobbler container_name: multi-scrobbler environment: - TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c - JELLYFIN_URL=192.168.0.101:8096 - JELLYFIN_USER=MyUser - BASE_URL=http://192.168.0.100:9078 - MALOJA_URL=http://domain.tld:42010 - MALOJA_API_KEY=1234 - PUID=1000 - PGID=1000 # uncomment along with valkey service/volume below for better caching #- CACHE_METADATA=valkey #- CACHE_METADATA_CONN=redis://valkey:6379 volumes: - ./config:/config ports: - 9078:9078 restart: unless-stopped #valkey: # image: valkey/valkey # volumes: # - valkeydata:/data #volumes: # valkeydata: # driver: local ``` -------------------------------- ### Full Docker Compose Example Source: https://docs.multi-scrobbler.app/installation A comprehensive Docker Compose example demonstrating a typical setup with Jellyfin source, Maloja client, specific IP addresses, user permissions, and optional caching. ```yaml services: multi-scrobbler: image: foxxmd/multi-scrobbler container_name: multi-scrobbler environment: - TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c - JELLYFIN_URL=192.168.0.101:8096 - JELLYFIN_USER=MyUser - BASE_URL=http://192.168.0.100:9078 - MALOJA_URL=http://domain.tld:42010 - MALOJA_API_KEY=1234 - PUID=1000 - PGID=1000 # uncomment along with valkey service/volume below for better caching #- CACHE_METADATA=valkey #- CACHE_METADATA_CONN=redis://valkey:6379 volumes: - ./config:/config ports: - 9078:9078 restart: unless-stopped #valkey: # image: valkey/valkey # volumes: # - valkeydata:/data #volumes: # valkeydata: # driver: local ``` -------------------------------- ### Docker Compose - Full Example with Jellyfin and Maloja Source: https://docs.multi-scrobbler.app/installation?dockerSetting=storage A comprehensive docker-compose.yml example demonstrating a typical Multi-Scrobbler setup with Jellyfin as a source, Maloja as a client, specific environment variables, port mapping, and Linux user permissions. ```yaml services: multi-scrobbler: image: foxxmd/multi-scrobbler container_name: multi-scrobbler environment: - TZ=Etc/GMT # Specify timezone from TZ Database name found here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56bd6540c - JELLYFIN_URL=192.168.0.101:8096 - JELLYFIN_USER=MyUser - BASE_URL=http://192.168.0.100:9078 - MALOJA_URL=http://domain.tld:42010 - MALOJA_API_KEY=1234 - PUID=1000 - PGID=1000 # uncomment along with valkey service/volume below for better caching #- CACHE_METADATA=valkey #- CACHE_METADATA_CONN=redis://valkey:6379 volumes: - ./config:/config ports: - 9078:9078 restart: unless-stopped #valkey: # image: valkey/valkey # volumes: # - valkeydata:/data #volumes: # valkeydata: # driver: local ``` -------------------------------- ### Koito Client File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/clients/koito Example JSON configuration file for a Koito client. This example shows all possible properties and their structure. ```json { "clients": { "koito": [ { "id": "unique_id", "name": "My Koito", "token": "pM195xPV98CDpk0QW47FIIOR8AKATAX5DblBF-Jq0t1MbbKL", "user": "your_koito_username", "url": "http://192.168.0.100:4110" } ] } } ``` -------------------------------- ### All-in-One Configuration with Libre.fm Client Example Source: https://docs.multi-scrobbler.app/configuration/clients/librefm An example of an all-in-one configuration file (config.json) that includes a Libre.fm client configuration. ```json { "clients": { "librefm": [ { "id": "unique_id", "apiKey": "anything", "secret": "anything", "redirectUri": "http://localhost:9078/librefm/callback", "urlBase": "https://my.libre.example/2.0/", "name": "My Libre.fm Account" } ] } } ``` -------------------------------- ### Install Multi-Scrobbler with Node.js Source: https://docs.multi-scrobbler.app/installation Clone the repository, install dependencies, build the project, and start the application using npm commands. ```bash git clone --branch https://github.com/FoxxMD/multi-scrobbler.git cd multi-scrobbler nvm use # optional, to set correct Node version npm install npm run docs:install && npm run build npm run start ``` -------------------------------- ### Install and Run Flatpak Application Source: https://docs.multi-scrobbler.app/development/flatpak Installs and runs the Flatpak application. Append --install --user to the build command for immediate installation. The run command uses the specified application ID. ```bash flatpak run -u io.github.foxxmd.multiscrobbler ``` -------------------------------- ### Start Application Source: https://docs.multi-scrobbler.app/installation?dockerSetting=caching Start the Multi-Scrobbler application using the npm start script. ```bash npm run start ``` -------------------------------- ### Local Installation ENV Configuration Example Source: https://docs.multi-scrobbler.app/configuration?cachedThings=metadata Export environment variables before starting Multi Scrobbler for a local Node.js installation. This method is useful for single-user or simple setups. ```bash SPOTIFY_CLIENT_ID=yourId SPOTIFY_CLIENT_SECRET=yourSecret npm run start ``` -------------------------------- ### All-in-One Configuration with Spotify Source Example Source: https://docs.multi-scrobbler.app/configuration/sources/spotify An example of an all-in-one configuration file (`config.json`) that includes a Spotify source. This demonstrates how to integrate Spotify alongside other potential configurations. ```json { "sources": [ { "type": "spotify", "id": "MySpotify", "name": "Foxx Spotify", "enable": true, "clients": [], "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/callback", "interval": 60 } } ] } ``` -------------------------------- ### All-in-One Configuration with MusicCast Source Example Source: https://docs.multi-scrobbler.app/configuration/sources/yamaha-musiccast Example of an all-in-one configuration file (config.json) that includes a MusicCast source. This demonstrates how to integrate MusicCast alongside other configurations. ```json { "sources": [ { "name": "Livingroom Reciever", "id": "myYamaha", "data": { "url": "192.168.0.101" } } ] } ``` -------------------------------- ### Configuration Example (JSON) Source: https://docs.multi-scrobbler.app/playground An example of a complete `config.json` file for the Multi Scrobbler application. This file demonstrates the structure and properties required for configuration. ```json { "sourceDefaults": { "maxPollRetries": 0, "maxRequestRetries": 1, "retryMultiplier": 1.5 }, "clientDefaults": { "maxRequestRetries": 1, "retryMultiplier": 1.5 }, "baseUrl": "http://localhost", "sources": [ { "type": "spotify", "clients": [ "myConfig" ], "name": "mySpotifySource", "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/callback" } } ], "clients": [ { "type": "maloja", "name": "myConfig" } ] } ``` -------------------------------- ### Spotify File Configuration Example Source: https://docs.multi-scrobbler.app/configuration?cachedThings=metadata Example JSON configuration for the Spotify source, to be placed in the CONFIG_DIR. This allows for detailed configuration of sources and clients. ```json [ { "id": "MySpotify", "name": "Foxx Spotify", "enable": true, "clients": [], "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/callback", "interval": 60 } } ] ``` -------------------------------- ### Jellyfin File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/jellyfin An example of a Jellyfin source configuration in JSON format, suitable for file-based configuration. ```json { "type": "jellyfin", "url": "http://localhost:8096", "user": "your_username", "apiKey": "your_api_key", "usersAllow": [ "user1", "user2" ], "librariesAllow": [ "Music", "Podcasts" ], "mediaTypesAllow": [ "Audio", "Book" ] } ``` -------------------------------- ### Full Docker Deploy Example with ENV Configuration Source: https://docs.multi-scrobbler.app/configuration/transforms/musicbrainz Example of a full Docker deployment using Jellyfin and Maloja, demonstrating the configuration of MusicBrainz transforms via environment variables. ```yaml services: multi-scrobbler: image: foxxmd/multi-scrobbler container_name: multi-scrobbler environment: - MB_CONTACT=contact@mydomain.com # searches with sensible release sorting with the searchOrder # isrc => basic => artist (native mode) - MB_PRESETS=default,sensible,native - JELLYFIN_URL=192.168.0.110:8096 - JELLYFIN_APIKEY=c9fae8756fbf481ebd9c5bb56b - JELLYFIN_USER=MyUser # applies musicbrainz Stage to preTransform of Jellyfin source - JELLYFIN_TRANSFORMS=musicbrainz # maloja receives enhanced scrobble from Jellyfin - MALOJA_URL=http://192.168.0.100:42010 - MALOJA_API_KEY=myApiKey volumes: - "./config:/config" ports: - "9078:9078" restart: unless-stopped ``` -------------------------------- ### Musikcube Source Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/musikcube An example JSON configuration for a single Musikcube source. Ensure 'id' and 'password' are set correctly. ```json [ { "type": "musikcube", "enable": true, "name": "Desktop", "id": "myMusikcube", "data": { "url": "ws://localhost:7905", "password": "MY_PASSWORD" } } ] ``` -------------------------------- ### All-in-One Configuration with Rocksky Client Example Source: https://docs.multi-scrobbler.app/configuration/clients/rocksky Example of an all-in-one configuration file that includes a Rocksky client. This demonstrates how to integrate Rocksky within a broader application configuration. ```json { "clients": [ { "id": "myRockskyClient", "name": "FoxxMD Rocksky Client", "configureAs": "client", "data": { "key": "7cdr86vis3mpq5b1pi01md0hkm7ykzzxjy81r", "handle": "alice.bsky.social" } } ] } ``` -------------------------------- ### ListenBrainz Client File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/clients/listenbrainz Example of a ListenBrainz client configuration file. Use this to understand the structure and properties required for a ListenBrainz client. ```json [ { "name": "Foxx LZ Client", "id": "brainzClient", "enable": true, "configureAs": "client", "data": { "token": "029b081ba-9156-4pe7-88e5-3be671f5ea2b", "username": "FoxxMD", "url": "https://api.listenbrainz.org" } } ] ``` -------------------------------- ### Custom Libre.fm Instance URL Example Source: https://docs.multi-scrobbler.app/configuration/clients/librefm Provides an example of how to configure a custom Libre.fm instance URL. This should include the protocol, domain, and any path prefix. ```text https://my.cool.libre.com/2.0/ ``` -------------------------------- ### Rocksky Source Configuration Example (JSON) Source: https://docs.multi-scrobbler.app/configuration/sources/rocksky-source This is an example of a Rocksky source configuration in JSON format. Ensure 'configureAs' is set to 'source'. ```json [ { "id": "myRockskySource", "name": "FoxxMD Rocksky Source", "configureAs": "source", "data": { "key": "e4xwktm7jxm607x8el1fcda30eu14dzb64h3j", "handle": "alice.bsky.social" } } ] ``` -------------------------------- ### YouTube Music Source Configuration Example (ENV) Source: https://docs.multi-scrobbler.app/configuration/sources/youtube-music?ytmAuth=ytt Example of environment variables for configuring a YouTube Music source. This includes essential IDs and optional authentication credentials. ```bash YTM_ID=my_unique_ytm_id YTM_COOKIE=your_cookie_value YTM_CLIENT_ID=your_client_id YTM_CLIENT_SECRET=your_client_secret YTM_REDIRECT_URI=http://localhost:8080/callback YTM_LOG_DIFF=true YTM_NAME=MyCustomYTMusicName ``` -------------------------------- ### Naive Mode Input Example Source: https://docs.multi-scrobbler.app/configuration/transforms/musicbrainz Example of input data for the Naive search mode, demonstrating a single artist string with multiple artists. ```json { "title": "Endless Possibility (feat. Wheatus)", "artists": ["Bowling For Soup, Punk Rock Factory & Wheatus"] } ``` -------------------------------- ### Kodi URL Transform Examples Source: https://docs.multi-scrobbler.app/configuration/sources/kodi Examples showing how different 'url' configurations in your file translate to the final URL used by multi-scrobbler to connect to Kodi. ```text url| Transformed URL ---|--- (none set)| `http://localhost:8080/jsonrpc` kodi.mydomain.com| `http://kodi.mydomain.com:8080/jsonrpc` 192.168.0.101:3456| `http://192.168.0.101:3456/jsonprc` mydomain.com:80/kodiReverse/jsonrpc| `http://mydomain.com:80/kodiReverse/jsonrpc` ``` -------------------------------- ### All-in-One Config with MPRIS Source Example Source: https://docs.multi-scrobbler.app/configuration/sources/mpris Example of an all-in-one configuration file including an MPRIS source. This demonstrates how to integrate MPRIS within a larger configuration structure. ```json { "sources": [ { "name": "Desktop", "id": "myMprisUbuntu", "enable": true, "data": { "whitelist": [ "vlc", "mpd" ], "blacklist": [ "spotify" ] }, "type": "mpris" } ] } ``` -------------------------------- ### Koito Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/koito-source Example JSON configuration for a Koito source when using file-based configuration. Ensure 'configureAs' is set to 'source'. ```json { "configureAs": "source", "id": "koito_source_1", "name": "My Koito Source", "token": "YOUR_KOITO_API_TOKEN", "user": "YOUR_KOITO_USERNAME", "url": "https://koito.example.com" } ``` -------------------------------- ### MusicCast Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/yamaha-musiccast Example of a MusicCast source configuration in JSON format. Use this to understand the structure and properties required for a MusicCast source. ```json [ { "name": "Livingroom Reciever", "id": "myYamaha", "enable": true, "data": { "url": "192.168.0.101" } } ] ``` -------------------------------- ### Last.fm Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/lastfm-source Example of a Last.fm Source configuration file. Use this to understand the structure and properties required for the lastfm source. ```json { "sources": { "lastfm": { "id": "unique-id", "apiKey": "your-api-key", "secret": "your-api-secret", "redirectUri": "http://localhost:9078/lastfm/callback", "session": "your-session-id" } } } ``` -------------------------------- ### Maloja Client Configuration Example (File) Source: https://docs.multi-scrobbler.app/configuration/clients/maloja Example JSON configuration for a Maloja client when using file-based configuration. This structure includes all possible properties for a Maloja client. ```json { "clients": { "maloja": [ { "id": "maloja_client_1", "url": "http://your_maloja_server_url", "api_key": "your_maloja_api_key" } ] } } ``` -------------------------------- ### Koito Source All-in-One Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/koito-source Example JSON configuration for a Koito source within an all-in-one config file. Ensure 'configureAs' is set to 'source'. ```json { "sources": { "koito": [ { "configureAs": "source", "id": "koito_source_1", "name": "My Koito Source", "token": "YOUR_KOITO_API_TOKEN", "user": "YOUR_KOITO_USERNAME", "url": "https://koito.example.com" } ] } } ``` -------------------------------- ### Example File Configuration for Last.fm Endpoint Source Source: https://docs.multi-scrobbler.app/configuration/sources/lastfm-endpoint An example of a JSON configuration file for an endpointlfm source, demonstrating various properties including enable, clients, and options. ```json { "sources": [ { "name": "MyLastFmEndpoint", "id": "endpointlfm", "data": { "enable": true, "clients": [ "MyMalojaConfigName", "MyLastFMConfigName" ] }, "options": { "slug": "mySlug", "token": "myToken" } } ] } ``` -------------------------------- ### VLC Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/vlc Example JSON configuration for a VLC source. This structure includes properties like enable, id, name, and data with url and password. ```json [ { "enable": true, "id": "myVlc", "name": "Desktop", "data": { "url": "localhost:8080", "password": "changeme" } } ] ``` -------------------------------- ### Example Configuration File Source: https://docs.multi-scrobbler.app/configuration?cachedThings=metadata This is a comprehensive example of the config.json file, illustrating various configuration sections such as source defaults, client defaults, source definitions (e.g., Spotify), client definitions (e.g., Maloja), and webhook configurations (e.g., Gotify, ntfy). ```json { "debugMode": false, "disableWeb": false, "sourceDefaults": { "logPayload": false, "logFilterFailure": "warn", "logPlayerState": false, "scrobbleThresholds": { "duration": 30, "percent": 50 }, "maxPollRetries": 1, "maxRequestRetries": 1, "retryMultiplier": 1.5 }, "clientDefaults": { "maxRequestRetries": 1, "retryMultiplier": 1.5 }, "sources": [ { "type": "spotify", "enable": true, "clients": ["myConfig"], "name": "mySpotifySource", "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/callback" } } ], "clients": [ { "type": "maloja", "enable": true, "name": "myConfig", "data": { "url": "http://localhost:42010", "apiKey": "myMalojaKey" } } ], "webhooks": [ { "name": "FirstGotifyServer", "type": "gotify", "url": "http://localhost:8070", "token": "MyGotifyToken", "priorities": { "info": 5, "warn": 7, "error": 10 } }, { "type": "ntfy", "name": "MyNtfyFriendlyNameForLogs", "url": "http://localhost:9991", "topic": "MyMultiScrobblerTopic", "username": "Optional", "password": "Optional", "priorities": { "info": 3, "warn": 4, "error": 5 } } ] } ``` -------------------------------- ### Start Multi-Scrobbler Application Source: https://docs.multi-scrobbler.app/installation Command to start the Multi-Scrobbler application after installation and configuration. ```bash npm run start ``` -------------------------------- ### All-in-One Configuration with Kodi Source Example Source: https://docs.multi-scrobbler.app/configuration/sources/kodi Example JSON for an all-in-one Multi Scrobbler configuration file that includes a Kodi source. This demonstrates how to integrate a Kodi source within the broader application settings. ```json { "sources": [ { "name": "My Kodi Server", "id": "myKodi", "enable": true, "data": { "url": "http://localhost:8080/jsonrpc", "username": "myUser", "password": "myPassword" }, "type": "kodi" } ] } ``` -------------------------------- ### All-in-One Configuration Example (config/config.json) Source: https://docs.multi-scrobbler.app/configuration/sources/jriver An example of an all-in-one configuration file that includes a JRiver source within the 'sources' array. This demonstrates how to integrate JRiver alongside other potential sources. ```json { "sources": [ { "name": "My JRiver Server", "id": "myRiver", "enable": true, "data": { "url": "0.0.0.0", "username": "auser", "password": "apassword" }, "type": "jriver" } ] } ``` -------------------------------- ### Example Log Output for Version Check Source: https://docs.multi-scrobbler.app/updating When Multi-Scrobbler starts, it logs the current version. This is useful for verifying updates. ```log [2026-04-16 09:17:32.428 -0400] INFO : [Init] Version: 0.13.0 ``` -------------------------------- ### Docker ENV Configuration Example Source: https://docs.multi-scrobbler.app/configuration?cachedThings=metadata Configure Multi Scrobbler using environment variables when running a Docker container. This is suitable for simple setups. ```bash docker run -e "SPOTIFY_CLIENT_ID=yourId" -e "SPOTIFY_CLIENT_SECRET=yourSecret" ... ``` -------------------------------- ### Start Maloja Docker Container Source: https://docs.multi-scrobbler.app/quickstart Command to start the Maloja Docker container in detached mode. ```bash docker compose up -d ``` -------------------------------- ### All-in-One Config with ListenBrainz Client Example Source: https://docs.multi-scrobbler.app/configuration/clients/listenbrainz Example of an all-in-one configuration file that includes a ListenBrainz client. This demonstrates how to integrate a ListenBrainz client within a broader application configuration. ```json { "clients": [ { "name": "Foxx LZ Client", "id": "brainzClient", "enable": true, "configureAs": "client", "data": { "token": "029b081ba-9156-4pe7-88e5-3be671f5ea2b", "username": "FoxxMD", "url": "https://api.listenbrainz.org" }, "type": "listenbrainz" } ] } ``` -------------------------------- ### Libre.fm Source All-in-One Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/librefm-source An example of an all-in-one configuration file that includes a Libre.fm source. This demonstrates how to integrate the Libre.fm source within a larger configuration structure. ```json { "sources": { "librefm": [ { "id": "librefm_source_1", "name": "My Libre.fm", "secret": "anything", "apiKey": "anything", "redirectUri": "http://localhost:9078/librefm/callback", "session": "", "urlBase": "", "enabled": true } ] } } ``` -------------------------------- ### External Artwork URL Examples (Not Allowed) Source: https://docs.multi-scrobbler.app/configuration/clients/discord/discord-app?artworkUrl=ms-default These examples demonstrate artwork URLs that will not be used because they are not HTTPS. ```text http://foobar.com/cool.jpg <-- NOT allowed, not http http://192.168.0.112/fun.png <-- NOT allowed, not http ``` -------------------------------- ### Koito API Key Example Source: https://docs.multi-scrobbler.app/configuration/clients/koito Example of a Koito API key. This key is obtained from your Koito server dashboard. ```text pM195xPV98CDpk0QW47FIIOR8AKATAX5DblBF-Jq0t1MbbKL ``` -------------------------------- ### Example All-in-One Configuration with YT Music Source Source: https://docs.multi-scrobbler.app/configuration/sources/youtube-music An example of an all-in-one configuration file (config.json) that includes a YouTube Music source. This demonstrates how to integrate a YT Music source within a larger configuration. ```json { "sources": { "ytmusic": [ { "name": "MyYTMusicSource", "id": "ytmusic", "data": { "clients": [ "MyMalojaConfigName", "MyLastFMConfigName" ] }, "options": { "cookie": "YOUR_YTMUSIC_COOKIE", "clientId": "YOUR_CLIENT_ID", "clientSecret": "YOUR_CLIENT_SECRET", "redirectUri": "YOUR_REDIRECT_URI", "logDiff": true, "name": "My Vanity YT Music Name" } } ] } } ``` -------------------------------- ### Clone Repository and Install Dependencies Source: https://docs.multi-scrobbler.app/installation?dockerSetting=caching Clone the Multi-Scrobbler repository using the latest release tag and install Node.js dependencies. ```bash git clone --branch https://github.com/FoxxMD/multi-scrobbler.git cd multi-scrobbler nvm use # optional, to set correct Node version npm install npm run docs:install && npm run build npm run start ``` -------------------------------- ### Libre.fm Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/librefm-source An example configuration file for a Libre.fm source, demonstrating all possible properties and their structure. This is useful for understanding how to write a valid config file for this source. ```json { "id": "librefm_source_1", "name": "My Libre.fm", "secret": "anything", "apiKey": "anything", "redirectUri": "http://localhost:9078/librefm/callback", "session": "", "urlBase": "", "enabled": true } ``` -------------------------------- ### Configuration File Setup Source: https://docs.multi-scrobbler.app/installation?dockerSetting=caching Define the application's sources and clients configuration using a JSON file located at ./config/config.json. ```json { "sources": [ { "type": "jellyfin", "clients": ["myConfig"], "name": "myJellyfinSource", "data": { "apiKey": "a89cba1569901a0671d5a9875fed4be1", "url": "http://192.168.0.101:8096", "user": "MyUser" } } ], "clients": [ { "type": "maloja", "name": "myConfig", "data": { "url": "http://localhost:42010", "apiKey": "myMalojaKey" } } ], } ``` -------------------------------- ### Native Mode Input Example Source: https://docs.multi-scrobbler.app/configuration/transforms/musicbrainz Example of input data for the Native search mode, showing how artist and title strings are structured. ```json { "title": "Endless Possibility (feat. Wheatus)", "artists": ["Bowling For Soup & Punk Rock Factory, My Cool Band"] } ``` -------------------------------- ### MusicCast URL Configuration Examples Source: https://docs.multi-scrobbler.app/configuration/sources/yamaha-musiccast Examples demonstrating how to provide a URL for a MusicCast device. If only a domain/IP:PORT is given, the default API path is appended. For custom URLs or reverse proxies, the full base path must be specified. ```text url | Transformed URL ------------------------------------|-------------------------------------------------- http://192.168.0.101 | http://192.168.0.101/YamahaExtendedControl/v1 http://mydomain.com/reverseProxy/cast | http://mydomain.com/reverseProxy/cast ``` -------------------------------- ### Kodi Source File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/kodi Example JSON for configuring a Kodi source in a Multi Scrobbler configuration file. This structure includes common properties like name, ID, enable status, and data for connecting to the Kodi server. ```json [ { "name": "My Kodi Server", "id": "myKodi", "enable": true, "data": { "url": "http://localhost:8080/jsonrpc", "username": "myUser", "password": "myPassword" } } ] ``` -------------------------------- ### Deezer JSON Configuration Example Source: https://docs.multi-scrobbler.app/configuration/sources/deezer Example of a Deezer-specific JSON configuration file. This format is used to define Deezer source settings. ```json [ { "name": "DeezerOfficalDeprecated", "enable": true, "clients": [], "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/deezer/callback", "interval": 60 } } ] ``` -------------------------------- ### TealFM Client JSON Configuration Example Source: https://docs.multi-scrobbler.app/configuration/clients/tealfm Example of a TealFM client configuration in JSON format. This structure is used for file-based configuration. ```json [ { "id": "myTealClient", "name": "Foxx Teal Client", "configureAs": "client", "data": { "identifier": "alice.bsky.social", "appPassword": "twog-phu7-4dhe-y4j3" } } ] ``` -------------------------------- ### All-in-One Configuration with Plex Source Source: https://docs.multi-scrobbler.app/configuration/sources/plex Example of an all-in-one configuration file that includes a Plex source. This demonstrates how to embed Plex source configuration within a broader application settings file. ```json { "sources": [ { "name": "Foxx Plex", "id": "MyPlexApi", "enable": true, "clients": [], "data": { "token": "1234", "url": "http://192.168.0.120:32400", "usersAllow": [ "FoxxMD", "SomeOtherUser" ], "usersBlock": [ "AnotherUser" ], "devicesAllow": [ "firefox" ], "devicesBlock": [ "google-home" ], "librariesAllow": [ "GoodMusic" ], "librariesBlock": [ "BadMusic" ] }, "options": { "logPayload": true, "logFilterFailure": "debug", "ignoreInvalidCert": false }, "type": "plex" } ] } ``` -------------------------------- ### Naive Mode Resulting Data Example Source: https://docs.multi-scrobbler.app/configuration/transforms/musicbrainz Example of the data structure after the Naive mode has processed the input, showing only the first extracted artist. ```json { "title": "Endless Possibility (feat. Wheatus)", "artists": ["Bowling For Soup"] } ``` -------------------------------- ### Native Mode Resulting Data Example Source: https://docs.multi-scrobbler.app/configuration/transforms/musicbrainz Example of the data structure after the Native mode has processed the input, with artists extracted and title cleaned. ```json { "title": "Endless Possibility", "artists": ["Bowling For Soup", "Punk Rock Factory", "My Cool Band", "Wheatus"] } ``` -------------------------------- ### Libre.fm Client File Configuration Example Source: https://docs.multi-scrobbler.app/configuration/clients/librefm An example JSON configuration for a Libre.fm client, demonstrating various settings including API keys, redirect URI, and custom URL base. ```json { "data": { "clients": { "librefm": [ { "id": "unique_id", "apiKey": "anything", "secret": "anything", "redirectUri": "http://localhost:9078/librefm/callback", "urlBase": "https://my.libre.example/2.0/", "name": "My Libre.fm Account" } ] } } } ```