Jellyfin
Must be using Jellyfin 10.7 or greater
- Create an API Key for multi-scrobbler
- In the Jellyfin desktop web UI Navigate to -> Administration -> Dashboard -> API Keys (
http://YOUR_JELLYIN_URL/web/index.html#!/apikeys.html) - Click
+button and create a new key with App namemulti-scrobbler - Copy the created API Key value for use in configuration below
- In the Jellyfin desktop web UI Navigate to -> Administration -> Dashboard -> API Keys (
It is recommended to use API Key + username but if you are not an admin for your Jellyfin instance you can also authenticate with your Jellyfin username and password.
Important Defaults
By default...
- multi-scrobbler will only scrobble for the user authenticated with the API.
- Allowed Users (
usersAlloworJELLYFIN_USERS_ALLOW) are only necessary if you want to scrobble for additional users.
- Allowed Users (
- multi-scrobbler will only scrobble media found in Jellyfin libraries that were labelled as Music.
librariesAlloworJELLYFIN_LIBRARIES_ALLOWwill override this- OR use
additionalAllowedLibraryTypesto allow more library types (like those labelled asmixedorbookfor audiobooks)
- multi-scrobbler will only scrobble media Jellyfin detects as Audio.
- To allow other media types to be scrobbled set
allowMediaTypesorJELLYFIN_MEDIATYPES_ALLOWwith a list of official types.- One or more of:
Unknown,Video,Audio,Photo,Book - If you use this setting you must explicitly specify
Audio, it will no longer be provided as a default
- One or more of:
- To allow other media types to be scrobbled set
External Asset URL
If you use MS and Jellyfin on an internal or otherwise inaccessible network but still want album art assets used in the UI or for Discord to be accessible you can specify a URL to replace your internal url.
Use (file) frontendUrlOverride or (env) JELLYFIN_FRONTEND_URL_OVERRIDE to replace url/JELLYFIN_URL, respectively, when rendering links for the dashboard UI or other resources.
Example:
Your JELLYFIN_URL is http://jellyfin:8096 but your Jellyfin instance is externally accessible (by MS or in general) at https://jellyfin.mydomain.com.
Use JELLYFIN_FRONTEND_URL_OVERRIDE=https://jellyfin.mydomain.com in order for the MS dashboard to use https://jellyfin.mydomain.com/art/1234.jpg when linking to album art.
Configuration
- ENV
- File
- AIO
This is configuration for the ENV Config Type.
| Environmental Variable | Type | Default | Description |
|---|---|---|---|
JELLYFIN_ID | string | A globally unique ID EX myComponentId | |
JELLYFIN_NAME | string | Value of JELLYFIN_ID | A vanity name EX My Cool Component |
JELLYFIN_ENABLE | boolean | true | Should this component be used? |
JELLYFIN_USER | string | The username of the user to authenticate for or track scrobbles for | |
JELLYFIN_PASSWORD | string | Password of the username to authenticate for | |
JELLYFIN_APIKEY | string | API Key to authenticate with. | |
JELLYFIN_URL | string | HOST:PORT of the Jellyfin server to connect to | |
JELLYFIN_USERS_ALLOW | string OR true | Only scrobble for specific users from this comma-delimited list. If true, scrobble for all users. | |
JELLYFIN_USERS_BLOCK | string | Do not scrobble for users from this comma-delimited list | |
JELLYFIN_DEVICES_ALLOW | string | Only scrobble if device or application name contains strings from this comma-delimited list | |
JELLYFIN_DEVICES_BLOCK | string | Do not scrobble if device or application name contains strings from this comma-delimited list | |
JELLYFIN_LIBRARIES_ALLOW | string | Only scrobble if library name contains string from this comma-delimited list | |
JELLYFIN_LIBRARIES_BLOCK | string | Do not scrobble if library name contains strings from this comma-delimited list | |
JELLYFIN_FRONTEND_URL_OVERRIDE | string | HOST:PORT of the Jellyfin server that your browser will be able to access from the frontend (and thus load images and links from) | |
JELLYFIN_MEDIATYPES_ALLOW | string | Allow media types from this comma-delimited list to be scrobbled |
Bold/Italic = Required
Config Structure
This displays the structure of the File Configuration for a jellyfin type Source with all possible properties, their shape, and descriptions/types. Use this to understand how to write a valid config.
Config Example
This displays an example config file of a jellyfin 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 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 jellyfin 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.
[
{
"name": "Cool JF Server",
"enable": true,
"id": "myJellyfin",
"clients": [],
"data": {
"url": "http://localhost:8096",
"user": "FoxxMD",
"apiKey": "c9fae8756fbf481ebd9c5bb56bd6540c",
"usersAllow": [
"FoxxMD",
"SomeOtherUser"
],
"usersBlock": [
"AnotherUser"
],
"devicesAllow": [
"firefox"
],
"devicesBlock": [
"google-home"
],
"librariesAllow": [
"GoodMusic"
],
"librariesBlock": [
"BadMusic"
],
"additionalAllowedLibraryTypes": [
"musicvideos"
],
"allowMediaTypes": [
"audio"
],
"frontendUrlOverride": "https://myJellyfinExternal.tld"
},
"options": {
"logPayload": true,
"logFilterFailure": "debug"
}
}
]
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 jellyfin type from the respective sources node below, then expand it.
Config Example
This displays an example config file of a all-in-one (config.json) configuration that includes a jellyfin 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 jellyfin 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.
{
"sources": [
{
"name": "Cool JF Server",
"enable": true,
"id": "myJellyfin",
"clients": [],
"data": {
"url": "http://localhost:8096",
"user": "FoxxMD",
"apiKey": "c9fae8756fbf481ebd9c5bb56bd6540c",
"usersAllow": [
"FoxxMD",
"SomeOtherUser"
],
"usersBlock": [
"AnotherUser"
],
"devicesAllow": [
"firefox"
],
"devicesBlock": [
"google-home"
],
"librariesAllow": [
"GoodMusic"
],
"librariesBlock": [
"BadMusic"
],
"additionalAllowedLibraryTypes": [
"musicvideos"
],
"allowMediaTypes": [
"audio"
],
"frontendUrlOverride": "https://myJellyfinExternal.tld"
},
"options": {
"logPayload": true,
"logFilterFailure": "debug"
},
"type": "jellyfin"
}
]
}