diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py
index ca22467cb..feae9b81c 100644
--- a/api/funkwhale_api/music/filters.py
+++ b/api/funkwhale_api/music/filters.py
@@ -29,7 +29,11 @@ class ChannelFilterSet(filters.FilterSet):
if not value:
return queryset
- channel = audio_models.Channel.objects.filter(uuid=value).first()
+ channel = (
+ audio_models.Channel.objects.filter(uuid=value)
+ .select_related("library")
+ .first()
+ )
if not channel:
return queryset.none()
@@ -38,7 +42,7 @@ class ChannelFilterSet(filters.FilterSet):
actor = utils.get_actor_from_request(self.request)
uploads = uploads.playable_by(actor)
ids = uploads.values_list(self.Meta.channel_filter_field, flat=True)
- return queryset.filter(pk__in=ids)
+ return queryset.filter(pk__in=ids).distinct()
class LibraryFilterSet(filters.FilterSet):
diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py
index 599e4ae4d..14f245aaa 100644
--- a/api/funkwhale_api/music/utils.py
+++ b/api/funkwhale_api/music/utils.py
@@ -38,6 +38,7 @@ def compute_status(jobs):
AUDIO_EXTENSIONS_AND_MIMETYPE = [
# keep the most correct mimetype for each extension at the bottom
+ ("mp3", "audio/mp3"),
("mp3", "audio/mpeg3"),
("mp3", "audio/x-mp3"),
("mp3", "audio/mpeg"),
diff --git a/front/src/views/channels/DetailEpisodes.vue b/front/src/views/channels/DetailEpisodes.vue
index ab5920eb4..7535d7edf 100644
--- a/front/src/views/channels/DetailEpisodes.vue
+++ b/front/src/views/channels/DetailEpisodes.vue
@@ -1,6 +1,6 @@