diff --git a/src/backend/common/vendor/tuneshine/TuneshineApiClient.ts b/src/backend/common/vendor/tuneshine/TuneshineApiClient.ts index e37eb3d0..c099e042 100644 --- a/src/backend/common/vendor/tuneshine/TuneshineApiClient.ts +++ b/src/backend/common/vendor/tuneshine/TuneshineApiClient.ts @@ -64,12 +64,22 @@ export class TuneshineApiClient extends AbstractApiClient { async sendNowPlaying(play: PlayObject) { let artUrl: string | undefined = undefined; - if (play.meta?.art?.track !== undefined) { - artUrl = play.meta?.art?.track; - } else if (play.meta?.art?.album !== undefined) { - artUrl = play.meta?.art?.album; - } else if (play.meta?.art?.artist !== undefined) { - artUrl = play.meta?.art?.artist; + if(play.meta?.art !== undefined && typeof play.meta.art === 'object' && play.meta.art !== null) { + const { + track, + album, + artist + } = play.meta.art + if(track !== undefined) { + artUrl = track; + this.logger.trace(`Using art from track: ${track}`); + } else if(album !== undefined) { + artUrl = album; + this.logger.trace(`Using art from album: ${album}`); + } else if(artist !== undefined) { + artUrl = artist; + this.logger.trace(`Using art from artist: ${artist}`); + } } if (artUrl === undefined) { throw new SimpleError('No art found on Play'); diff --git a/src/backend/scrobblers/TuneshineScrobbler.ts b/src/backend/scrobblers/TuneshineScrobbler.ts index 8cefc65e..2626d7b8 100644 --- a/src/backend/scrobblers/TuneshineScrobbler.ts +++ b/src/backend/scrobblers/TuneshineScrobbler.ts @@ -76,12 +76,22 @@ export default class TuneshineScrobbler extends AbstractScrobbleClient { return [true]; } let artUrl: string | undefined = undefined; - if (data.play.meta?.art?.track !== undefined) { - artUrl = data.play.meta?.art?.track; - } else if (data.play.meta?.art?.album !== undefined) { - artUrl = data.play.meta?.art?.album; - } else if (data.play.meta?.art?.artist !== undefined) { - artUrl = data.play.meta?.art?.artist; + if(data.play.meta?.art !== undefined && typeof data.play.meta.art === 'object' && data.play.meta.art !== null) { + const { + track, + album, + artist + } = data.play.meta.art + if(track !== undefined) { + artUrl = track; + this.logger.trace(`Found track art`); + } else if(album !== undefined) { + artUrl = album; + this.logger.trace(`Found album art`); + } else if(artist !== undefined) { + artUrl = artist; + this.logger.trace(`Found artist art`); + } } if (artUrl === undefined) { return [false, 'Play does not contain artwork'];