diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py
index 4783a8d45a251e4850e65510482669187290b183..6822c058ae9bf5c9dd734def0c647790dcc2534a 100644
--- a/api/funkwhale_api/music/views.py
+++ b/api/funkwhale_api/music/views.py
@@ -418,10 +418,12 @@ def handle_serve(upload, user, format=None, max_bitrate=None, proxy_media=True):
         response = Response(status=302)
         response["Location"] = f.audio_file.url
         return response
+
     if mt:
-        response = Response(content_type=mt)
+        # we need a non-empty response otherwise rest_framework removes our content-type
+        response = Response(b"noop", content_type=mt)
     else:
-        response = Response()
+        response = Response(b"noop")
     filename = f.filename
     mapping = {"nginx": "X-Accel-Redirect", "apache2": "X-Sendfile"}
     file_header = mapping[settings.REVERSE_PROXY_TYPE]
diff --git a/api/tests/music/test_views.py b/api/tests/music/test_views.py
index 4a423ddb16043425c3b92358369f8cca8d5bdad8..5bcbdb7356a740ce1f1a641974ff2340c5d34fec 100644
--- a/api/tests/music/test_views.py
+++ b/api/tests/music/test_views.py
@@ -451,13 +451,16 @@ def test_handle_serve_create_mp3_version(factories, now):
 
 def test_listen_transcode(factories, now, logged_in_api_client, mocker, settings):
     upload = factories["music.Upload"](
-        import_status="finished", library__actor__user=logged_in_api_client.user
+        import_status="finished",
+        library__actor__user=logged_in_api_client.user,
+        mimetype="audio/mpeg",
     )
     url = reverse("api:v1:listen-detail", kwargs={"uuid": upload.track.uuid})
     handle_serve = mocker.spy(views, "handle_serve")
     response = logged_in_api_client.get(url, {"to": "mp3"})
 
     assert response.status_code == 200
+    assert response["Content-Type"] == "audio/mpeg"
 
     handle_serve.assert_called_once_with(
         upload,