[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.

feat(listenbrainz): Use upstream for backlogged

FoxxMD (Mar 25, 2026, 1:37 AM UTC) 22cf95e5 358355c6

+2 -3
+2 -2
src/backend/sources/ListenbrainzSource.ts
··· 88 88 89 89 getUpstreamRecentlyPlayed = async (options: RecentlyPlayedOptions = {}): Promise<PlayObject[]> => { 90 90 try { 91 - return await this.getScrobblesForTimeRange({limit: 20}); 91 + return await this.getScrobblesForTimeRange({limit: 20, ...options}); 92 92 } catch (e) { 93 93 throw e; 94 94 } ··· 98 98 return 'second'; 99 99 } 100 100 101 - protected getBackloggedPlays = async (options: RecentlyPlayedOptions = {}) => await this.getRecentlyPlayed({formatted: true, ...options}) 101 + protected getBackloggedPlays = async (options: RecentlyPlayedOptions = {}) => await this.getUpstreamRecentlyPlayed({formatted: true, ...options}) 102 102 103 103 getNewPlayer = (logger: Logger, id: PlayPlatformId, opts: PlayerStateOptions) => new NowPlayingPlayerState(logger, id, opts); 104 104 }
-1
src/backend/utils/ListenFetchUtils.ts
··· 32 32 while (more) { 33 33 requestCount++; 34 34 const reqOptsHint: string[] = [ 35 - `Between ${todayAwareFormat(dayjs(currOpts.from))} and ${todayAwareFormat(dayjs(currOpts.to))}` 36 35 ]; 37 36 if(currOpts.to !== undefined && currOpts.from !== undefined) { 38 37 reqOptsHint.push(`Between ${todayAwareFormat(dayjs(currOpts.from))} and ${todayAwareFormat(dayjs(currOpts.to))}`);