[READ-ONLY] Mirror of https://github.com/FoxxMD/multi-scrobbler. Scrobble plays from multiple sources to multiple clients docs.multi-scrobbler.app
deezer docker jellyfin koito lastfm listenbrainz maloja mopidy mpris music music-assistant plex scrobble self-hosted spotify subsonic tautulli youtube-music
0

Configure Feed

Select the types of activity you want to include in your feed.

docs: update kitchensink with ids

FoxxMD (May 15, 2026, 1:09 PM UTC) 70e5aaaa 366e668c

+55 -28
+55 -28
docsite/docs/configuration/kitchensink.mdx
··· 37 37 "sources": [ 38 38 { 39 39 "type": "spotify", 40 - "name": "foxxSpot", 40 + "id": "foxxSpot", 41 + "name": "Foxx Spotify", 41 42 "clients": ["foxxMaloja"], 42 43 "data": { 43 44 "clientId": "foxxSpotifyAppId", ··· 49 50 }, 50 51 { 51 52 "type": "spotify", 52 - "name": "marySpot", 53 + "id": "marySpot", 54 + "name": "Marys Spotify", 53 55 "clients": ["maryMaloja"], 54 56 "data": { 55 57 "clientId": "foxxSpotifyAppId", // only need one application, it can be used by all users of this multi-scrobbler instance ··· 58 60 }, 59 61 { 60 62 "type": "spotify", 61 - "name": "fredSpot", 63 + "id": "fredSpot", 64 + "name": "Freds Spotify", 62 65 "clients": ["fredMaloja"], 63 66 "data": { 64 67 "accessToken": "fredsToken", ··· 68 71 }, 69 72 { 70 73 "type": "plex", 71 - "name": "fredPlex", 74 + "id": "fredPlex", 75 + "name": "Freds Plex", 72 76 "clients": ["fredMaloja"], 73 77 "data": { 74 78 "token": "JtRnwQWD__XMJF8sT3jc", ··· 78 82 }, 79 83 { 80 84 "type": "plex", 81 - "name": "maryPlex", 85 + "id": "maryPlex", 86 + "name": "Marys Plex", 82 87 "clients": ["maryMaloja"], 83 88 "data": { 84 89 "token": "JtRnwQWD__XMJF8sT3jc", ··· 89 94 }, 90 95 { 91 96 "type": "plex", 92 - "name": "partyPlex", 97 + "id": "partyPlex", 98 + "name": "Party Library", 93 99 // omitting clients (or making it empty) will make this Source scrobble to all Clients 94 100 "data": { 95 101 "token": "JtRnwQWD__XMJF8sT3jc", ··· 99 105 }, 100 106 { 101 107 "type": "jellyfin", 102 - "name": "FredJelly", 108 + "id": "fredJelly", 109 + "name": "Freds Jellyfin", 103 110 // omitting clients (or making it empty) will make this Source scrobble to all Clients 104 111 "data": { 105 112 "url": "http://localhost:8096", ··· 110 117 }, 111 118 { 112 119 "type": "subsonic", 113 - "name": "foxxAirsonic", 120 + "id": "foxxNavi", 121 + "name": "Foxx Navidrome", 114 122 "clients": ["foxxMaloja"], 115 123 "data": { 116 124 "user": "foxx", 117 125 "password": "foxxPassword", 118 - "url": "https://airsonic.foxx.example" 126 + "url": "https://navidrome.foxx.example" 119 127 } 120 128 }, 121 129 { 122 130 "type": "ytmusic", 123 - "name": "foxxYoutube", 131 + "id": "foxxTube", 132 + "name": "Foxx YT", 124 133 "clients": ["foxxMaloja"], 125 134 "data": { 126 135 "cookie": "__Secure-3PAPISID=3AxsXpy0MKGu75Qb/AkISXGqOnSDn1jEKn; DEVICE_INFO=ChxOekU0Tmpjek5EWTBPRGd3TlRBMk16QXpNdz09EJbS8Z0GGJbS8Z0G; ...", ··· 128 137 }, 129 138 { 130 139 "type": "endpointlz", 131 - "name": "listenbrainzfoxx", 140 + "id": "lzFoxx", 141 + "name": "Foxx LZ", 132 142 "clients": ["foxxMaloja"], 133 143 "data": { 134 144 "token": "myToken" ··· 138 148 "clients": [ 139 149 { 140 150 "type": "maloja", 141 - "name": "foxxMaloja", 151 + "id": "foxxMaloja", 152 + "name": "Foxx Maloja", 142 153 "data": { 143 154 "url": "https://maloja.foxx.example", 144 155 "apiKey": "foxxApiKey" ··· 146 157 }, 147 158 { 148 159 "type": "maloja", 149 - "name": "fredMaloja", 160 + "id": "fredMaloja", 161 + "name": "Fred Maloja", 150 162 "data": { 151 163 "url": "https://maloja.fred.example", 152 164 "apiKey": "fredApiKey" ··· 154 166 }, 155 167 { 156 168 "type": "maloja", 157 - "name": "maryMaloja", 169 + "id": "maryMaloja", 170 + "name": "Mary Maloja", 158 171 "data": { 159 172 "url": "https://maloja.mary.example", 160 173 "apiKey": "maryApiKey" ··· 162 175 }, 163 176 { 164 177 "type": "lastfm", 165 - "name": "maryLFM", 178 + "id": "maryLFM" 179 + "name": "Mary Lastfm", 166 180 "data": { 167 181 "apiKey": "maryApiKey", 168 182 "secret": "marySecret", ··· 180 194 [ 181 195 { 182 196 // may omit 'type' property since app knows this is file is for spotify configs 183 - "name": "foxxSpot", 197 + "id": "foxxSpot", 198 + "name": "Foxx Spotify", 184 199 "clients": ["foxxMaloja"], 185 200 "data": { 186 201 "clientId": "foxxSpotifyAppId", ··· 188 203 } 189 204 }, 190 205 { 191 - "name": "marySpot", 206 + "id": "marySpot", 207 + "name": "Marys Spotify", 192 208 "clients": ["maryMaloja"], 193 209 "data": { 194 210 "clientId": "foxxSpotifyAppId", ··· 196 212 } 197 213 }, 198 214 { 199 - "name": "fredSpot", 215 + "type": "spotify", 216 + "id": "fredSpot", 200 217 "clients": ["fredMaloja"], 201 218 "data": { 202 219 "accessToken": "fredsToken", ··· 210 227 ```json5 title="CONFIG_DIR/plex.json" 211 228 [ 212 229 { 213 - "name": "fredPlex", 230 + "type": "plex", 231 + "id": "fredPlex", 214 232 "clients": ["fredMaloja"], 215 233 "data": { 216 234 "token": "JtRnwQWD__XMJF8sT3jc", ··· 219 237 } 220 238 }, 221 239 { 222 - "name": "maryPlex", 240 + "type": "plex", 241 + "id": "maryPlex", 223 242 "clients": ["maryMaloja"], 224 243 "data": { 225 244 "token": "JtRnwQWD__XMJF8sT3jc", ··· 229 248 } 230 249 }, 231 250 { 232 - "name": "partyPlex", 251 + "type": "plex", 252 + "id": "partyPlex", 233 253 "data": { 234 254 "token": "JtRnwQWD__XMJF8sT3jc", 235 255 "url": "192.168.0.233:32400", ··· 242 262 ```json5 title="CONFIG_DIR/jellyfin.json" 243 263 [ 244 264 { 245 - "name": "FredJelly", 265 + "type": "jellyfin", 266 + "id": "fredJelly", 246 267 "data": { 247 268 "url": "http://localhost:8096", 248 269 "user": "FoxxMD", ··· 256 277 ```json5 title="CONFIG_DIR/ytmusic.json" 257 278 [ 258 279 { 259 - "name": "foxxYoutube", 280 + "type": "ytmusic", 281 + "id": "foxxTube", 260 282 "clients": ["foxxMaloja"], 261 283 "data": { 262 284 "cookie": "__Secure-3PAPISID=3AxsXpy0MKGu75Qb/AkISXGqOnSDn1jEKn; DEVICE_INFO=ChxOekU0Tmpjek5EWTBPRGd3TlRBMk16QXpNdz09EJbS8Z0GGJbS8Z0G; ...", ··· 267 289 ```json5 title="CONFIG_DIR/endpointlz.json" 268 290 [ 269 291 { 270 - "name": "listenbrainzfoxx", 292 + "id": "lzFoxx", 293 + "name": "Foxx LZ", 271 294 "clients": ["foxxMaloja"], 272 295 "data": { 273 296 "token": "myToken", ··· 279 302 ```json5 title="CONFIG_DIR/maloja.json" 280 303 [ 281 304 { 282 - "name": "foxxMaloja", 305 + "type": "maloja", 306 + "id": "foxxMaloja", 283 307 "data": { 284 308 "url": "https://maloja.foxx.example", 285 309 "apiKey": "foxxApiKey" 286 310 } 287 311 }, 288 312 { 289 - "name": "fredMaloja", 313 + "type": "maloja", 314 + "id": "fredMaloja", 290 315 "data": { 291 316 "url": "https://maloja.fred.example", 292 317 "apiKey": "fredApiKey" 293 318 } 294 319 }, 295 320 { 296 - "name": "maryMaloja", 321 + "type": "maloja", 322 + "id": "maryMaloja", 297 323 "data": { 298 324 "url": "https://maloja.mary.example", 299 325 "apiKey": "maryApiKey" ··· 305 331 ```json5 title="CONFIG_DIR/lastfm.json" 306 332 [ 307 333 { 308 - "name": "maryLFM", 334 + "type": "lastfm", 335 + "id": "maryLFM" 309 336 "data": { 310 337 "apiKey": "maryApiKey", 311 338 "secret": "marySecret",