diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py
index f95a8bb3b123d06c0db636449257281467c82002..3e39e91e2d2cbd228fd530560f29edacdccd19f8 100644
--- a/api/funkwhale_api/music/models.py
+++ b/api/funkwhale_api/music/models.py
@@ -855,8 +855,7 @@ class Upload(models.Model):
         if not input:
             return
 
-        input_format = utils.MIMETYPE_TO_EXTENSION[self.mimetype]
-        audio = pydub.AudioSegment.from_file(input, format=input_format)
+        audio = pydub.AudioSegment.from_file(input)
         return audio
 
     def save(self, **kwargs):
diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py
index 17b5b7292be45f3e9803e17d8b9d1df4f6bd8f74..8d0f05bd5f03d4ea721d7ecdebca7ffca7cb0cb7 100644
--- a/api/funkwhale_api/music/utils.py
+++ b/api/funkwhale_api/music/utils.py
@@ -101,7 +101,7 @@ def get_actor_from_request(request):
     return actor
 
 
-def transcode_file(input, output, input_format, output_format, **kwargs):
+def transcode_file(input, output, input_format=None, output_format="mp3", **kwargs):
     with input.open("rb"):
         audio = pydub.AudioSegment.from_file(input, format=input_format)
     return transcode_audio(audio, output, output_format, **kwargs)
diff --git a/changes/changelog.d/1274.bugfix b/changes/changelog.d/1274.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..8dfe061aceb5902f947d8137896e799a53c3ae6a
--- /dev/null
+++ b/changes/changelog.d/1274.bugfix
@@ -0,0 +1 @@
+Changed audio format detection to happen via sniffing and not file extensions (#1274)