From 40869bcf39f5894281c501bc059932d15ee6f6ed Mon Sep 17 00:00:00 2001 From: Brandon Date: Fri, 1 May 2026 22:22:09 -0400 Subject: [PATCH] fix: set correct Content-Type for RSS feed audio files Express's mime package does not recognize .m4b, causing it to fall back to application/octet-stream. This reuses the existing getAudioMimeTypeFromExtname utility (already applied to the download endpoint) to set the correct audio/mp4 header before sendFile. Fixes #5041 --- server/managers/RssFeedManager.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/managers/RssFeedManager.js b/server/managers/RssFeedManager.js index c4681bdc2..a066a0d32 100644 --- a/server/managers/RssFeedManager.js +++ b/server/managers/RssFeedManager.js @@ -2,6 +2,7 @@ const { Request, Response } = require('express') const Path = require('path') const Logger = require('../Logger') +const { getAudioMimeTypeFromExtname } = require('../utils/fileUtils') const SocketAuthority = require('../SocketAuthority') const Database = require('../Database') @@ -216,6 +217,11 @@ class RssFeedManager { res.sendStatus(404) return } + // Express does not set the correct mimetype for m4b files so use our defined mimetypes if available + const audioMimeType = getAudioMimeTypeFromExtname(Path.extname(episodePath)) + if (audioMimeType) { + res.setHeader('Content-Type', audioMimeType) + } res.sendFile(episodePath) }