From 64d89454601c681a8a83435d12ccede2d0d3240e Mon Sep 17 00:00:00 2001 From: Myron Blair Date: Sun, 26 Jul 2026 20:40:59 -0500 Subject: [PATCH] Fix wrong Content-Type for m4a/flac/ogg/wav/aac track streams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mimetypes on the backend image doesn't recognize these extensions, so every non-mp3 track streamed as audio/mpeg — wrong codec hint, breaks playback in strict browsers. Add an explicit fallback map. --- backend/server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/server.py b/backend/server.py index 62d6b48..38746bf 100644 --- a/backend/server.py +++ b/backend/server.py @@ -1534,7 +1534,8 @@ async def stream_track( if not file_path.is_file(): raise HTTPException(status_code=404, detail="File missing on disk") file_size = file_path.stat().st_size - content_type = mimetypes.guess_type(str(file_path))[0] or "audio/mpeg" + _audio_mime_fallback = {".m4a": "audio/mp4", ".flac": "audio/flac", ".ogg": "audio/ogg", ".wav": "audio/wav", ".aac": "audio/aac"} + content_type = mimetypes.guess_type(str(file_path))[0] or _audio_mime_fallback.get(file_path.suffix.lower(), "audio/mpeg") range_header = request.headers.get("range") or request.headers.get("Range") if range_header and range_header.startswith("bytes="): try: