Mixcloud
Mixcloud is a platform for DJ mixes, radio shows, and podcasts.
This Source monitors the listening history of a Mixcloud user and scrobbles newly discovered listens to configured clients.
Mixcloud's public API does not expose tracklists for mixes so each listen is scrobbled as a single play for the entire mix:
- Track is the name of the mix
- Artists are the hosts credited on the mix, or the account that uploaded the mix if there are no credited hosts
- Duration is the full length of the mix
Setup
There are two ways to configure this Source:
- Username is easier and works for all free accounts.
- Oauth works for all accounts, including Pro. You will need to use this if your listening history is private.
- Username (Recommended)
- OAuth
Only your username is required to use this method. No authentication is required.
Your Mixcloud listening history must be public (the default), which you can verify by visiting https://www.mixcloud.com/YourUsername/listens/ while logged out.
Your username is the last part of your profile URL IE https://www.mixcloud.com/MyUsername/ => MyUsername
Use this with MIXCLOUD_USERNAME ENV or username File/AIO properties in configuration below.
If your listening history is private, or you have a pro account, authenticate with a Mixcloud application instead:
- Create an application to get a clientId and clientSecret
- Set these in your configuration below
- Start multi-scrobbler and use the Authorize button/link for this Source to complete sign-in at Mixcloud
The user who completes the sign-in will be the monitored user for this Source.
The authorize flow redirects to /api/mixcloud/callback on the address the multi-scrobbler web UI is served from (default http://localhost:9078). If multi-scrobbler is behind a reverse proxy, complete sign-in from that address.
Configuration
- ENV
- File
- AIO
This is configuration for the ENV Config Type.
| Environmental Variable | Type | Default | Description |
|---|---|---|---|
MIXCLOUD_ID | string | A globally unique ID EX myComponentId | |
MIXCLOUD_NAME | string | Value of MIXCLOUD_ID | A vanity name EX My Cool Component |
MIXCLOUD_ENABLE | boolean | true | Should this component be used? |
MIXCLOUD_USERNAME | string | Mixcloud username whose listening history should be monitored. Only required when clientId/clientSecret are not defined. | |
MIXCLOUD_CLIENT_ID | string | Client ID of a Mixcloud application, from https://www.mixcloud.com/developers/. When defined (with clientSecret) the source authenticates with OAuth and can monitor private (pro account) listening histories. | |
MIXCLOUD_CLIENT_SECRET | string | Client secret of a Mixcloud application, from https://www.mixcloud.com/developers/. |
Bold/Italic = Required
Config Structure
This displays the structure of the File Configuration for a mixcloud 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 mixcloud 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 mixcloud 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.
[
{
"id": "myMixcloud",
"name": "MyMixcloud",
"enable": true,
"clients": [],
"data": {
"username": "MyUsername",
"interval": 60
}
}
]
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 mixcloud 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 mixcloud 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 mixcloud 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": [
{
"id": "myMixcloud",
"name": "MyMixcloud",
"enable": true,
"clients": [],
"data": {
"username": "MyUsername",
"interval": 60
},
"type": "mixcloud"
}
]
}