diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py
index f11e4507a7a0bc7d1648e5dfda18f3deb4542286..3b9fbb21476d8b4e45fa8fc8356d0b0b635e1685 100644
--- a/api/funkwhale_api/music/utils.py
+++ b/api/funkwhale_api/music/utils.py
@@ -43,9 +43,9 @@ def get_query(query_string, search_fields):
 
 
 def guess_mimetype(f):
-    b = min(100000, f.size)
+    b = min(1000000, f.size)
     t = magic.from_buffer(f.read(b), mime=True)
-    if t == 'application/octet-stream':
+    if not t.startswith('audio/'):
         # failure, we try guessing by extension
         mt, _ = mimetypes.guess_type(f.path)
         if mt:
diff --git a/api/tests/music/test_utils.py b/api/tests/music/test_utils.py
index 12b381a997c59ea85ebf1239024b1d3f288e2cdf..7b967dbbcceac9d6aade23d2dfb97d8f2a7d696b 100644
--- a/api/tests/music/test_utils.py
+++ b/api/tests/music/test_utils.py
@@ -15,9 +15,13 @@ def test_guess_mimetype_try_using_extension(factories, mocker):
     assert utils.guess_mimetype(f.audio_file) == 'audio/mpeg'
 
 
-def test_guess_mimetype_try_using_extension_if_fail(factories, mocker):
+@pytest.mark.parametrize('wrong', [
+    'application/octet-stream',
+    'application/x-empty',
+])
+def test_guess_mimetype_try_using_extension_if_fail(wrong, factories, mocker):
     mocker.patch(
-        'magic.from_buffer', return_value='application/octet-stream')
+        'magic.from_buffer', return_value=wrong)
     f = factories['music.TrackFile'].build(
         audio_file__filename='test.mp3')
 
diff --git a/changes/changelog.d/266.bugfix b/changes/changelog.d/266.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..c282afe7d885468a260fa0290abf96004450ed71
--- /dev/null
+++ b/changes/changelog.d/266.bugfix
@@ -0,0 +1 @@
+Ensure we do not store bad mimetypes (such as application/x-empty) (#266)