Deezer
Retrieve ARL
Section titled “Retrieve ARL”The arl is a browser cookie that Deezer uses to store your login information. Multi-scrobbler uses the arl value to make authorized requests to Deezer’s API where it can retrieve listening history.
After logging into Deezer, use one of the methods below to retrieve the arl cookie value:
- On deezer.com, press F12 to open the Developer Tools window.
- Go to the Applications tab. Press the ‘>>’ More tabs icon if it’s hidden.
- Under the Cookies Filter, click deezer.com, then the text bar name
arl. - Copy all the contents shown in the Cookie Value pane.
- On deezer.com, hit Ctrl+Shift+I to open Developer Tools
- Go to the Storage Tab, then expand Cookies in the sidebar and select deezer.com
- Find the row with
arlas the name, then double click the Value column and right click -> copy the value
Duplicate detection
Section titled “Duplicate detection”Third party integrations with Deezer (Sonos) may cause Deezer to report the same track many times in listening history. If you experience this issue modify your Deezer Source config (file-based only) to include the option "fuzzyDiscoveryIgnore": "aggressive"
deezer.json example
[ { "name": "MyDeezer", "data": { "arl": "UOsRPjT3U5Dhaaup3x...", }, "options": { "fuzzyDiscoveryIgnore": "aggressive" } }]This option comes with some trade-offs: MS will aggressively detect repeated tracks within a window of time that should eliminate all duplicates. However, this will also prevent intentionally repeated tracks from being scrobbled. See this thread for more information on how this works.
Family account
Section titled “Family account”Multi-scrobbler can monitor listening history for accounts linked to a Deezer Family Account.
Instructions
Start multi-scrobbler using the ARL for the main account.
In the logs look for Linked Accounts associated with the Deezer Source. It will look something like this:
VERBOSE: [App] [Sources] [Deezer - MyDeezer] Linked Accounts:Name: Joe | ID: 166276334 | Private?: YesName: Mary | ID: 48475231 | Private?: YesName: FoxxMD | ID: 896225281 | Private?: NoName: Cool Guy | ID: 128522478 | Private?: YesThe Account ID you want to monitor should be set:
Set in your docker compose environment section:
- DEEZER_ACCOUNT_ID=896225281Add an accountId property to the data section
[ { "name": "DeezerARL", "enable": true, "clients": [], "data": { "arl": "UOsRPjT3U5Dhaaup3xQ30D...", "accountId": "896225281" } }]Restart multi-scrobbler to start monitoring that account.
Configuration
Section titled “Configuration”Configuration Type
This is configuration for the ENV Config Type.
| Environmental Variable | Type | Default | Description |
|---|---|---|---|
DEEZER_ID |
string | A globally unique ID EX myComponentId |
|
DEEZER_NAME |
string | Value of DEEZER_ID |
A vanity name EX My Cool Component |
DEEZER_ENABLE |
boolean | true | Should this component be used? |
DEEZER_ARL |
string | ARL retrieved from Deezer response header | |
DEEZER_ACCOUNT_ID |
string | The ID (USER_ID) of the linked account to monitor. | |
DEEZER_USER_AGENT |
string | Mozilla/5.0 (X11; Linux i686; rv:135.0) Gecko/20100101 Firefox/135.0 | User agent |
DEEZER_TRACK_VARIANT |
boolean | Add the reported title variant, like (Remastered), to the title name. |
Bold/Italic = Required
Config Structure
This displays the structure of the File Configuration for a deezer 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 deezer 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.
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 deezer 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": "Family Account", "id": "myDeezerId", "enable": true, "clients": [], "data": { "arl": "UOsRPjT3U5Dhaaup3xQ30DWFoSgqugdSYzL3QE743waaVy2eur2ckyJcZ4RV123Q3PsbKXkLwA6ahc9XmEfev6BtfSP8LujE3JswWRQogZCDUOwVzWO5sAig" } }]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 deezer 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 deezer 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 deezer 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": "Family Account", "id": "myDeezerId", "enable": true, "clients": [], "data": { "arl": "UOsRPjT3U5Dhaaup3xQ30DWFoSgqugdSYzL3QE743waaVy2eur2ckyJcZ4RV123Q3PsbKXkLwA6ahc9XmEfev6BtfSP8LujE3JswWRQogZCDUOwVzWO5sAig" }, "type": "deezer" } ]}Create a new application at Deezer Developers
- Application Domain must be the same as your multi-scrobbler domain. Default is
localhost:9078 - Redirect URL must end in
deezer/callback - Default would be
http://localhost:9078/deezer/callback
After application creation you should have credentials displayed in the “My Apps” dashboard. You will need:
- Application ID
- Secret Key
- Redirect URL (if not the default)
If no access token is provided…
After starting multi-scrobbler with credentials in-place open the dashboard (http://localhost:9078) and find your Deezer source. Click (Re)authenticate and (re)start polling to start the login process. After login is complete polling will begin automatically.
Configuration
Section titled “Configuration”| Environmental Variable | Required? | Default | Description |
|---|---|---|---|
DEEZER_ID |
Yes | A unique ID | |
DEEZER_CLIENT_ID |
Yes | Your Application ID | |
DEEZER_CLIENT_SECRET |
Yes | Your Secret Key | |
DEEZER_REDIRECT_URI |
No | http://localhost:9078/deezer/callback |
URI must end in deezer/callback |
DEEZER_NAME |
No | A vanity name different than ID |
[ { "name": "DeezerOfficalDeprecated", "enable": true, "clients": [], "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/deezer/callback", "interval": 60 } }]or explore the schema with an example and live editor/validator
{ "sources": [ { "name": "DeezerOfficalDeprecated", "enable": true, "clients": [], "data": { "clientId": "a89cba1569901a0671d5a9875fed4be1", "clientSecret": "ec42e09d5ae0ee0f0816ca151008412a", "redirectUri": "http://localhost:9078/deezer/callback", "interval": 60 }, "type": "deezer" } ]}or explore the schema with an example and live editor/validator