diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py
index 60a9e5f865968f7d14b2719fe3b2ee29810dd5b9..ca22467cb701d9174658b98f1f65400684f163cd 100644
--- a/api/funkwhale_api/music/filters.py
+++ b/api/funkwhale_api/music/filters.py
@@ -58,7 +58,8 @@ class LibraryFilterSet(filters.FilterSet):
         uploads = models.Upload.objects.filter(library=library)
         uploads = uploads.playable_by(actor)
         ids = uploads.values_list(self.Meta.library_filter_field, flat=True)
-        return queryset.filter(pk__in=ids)
+        qs = queryset.filter(pk__in=ids).distinct()
+        return qs
 
 
 class ArtistFilter(
@@ -88,7 +89,7 @@ class ArtistFilter(
 
     def filter_playable(self, queryset, name, value):
         actor = utils.get_actor_from_request(self.request)
-        return queryset.playable_by(actor, value)
+        return queryset.playable_by(actor, value).distinct()
 
 
 class TrackFilter(
@@ -127,7 +128,7 @@ class TrackFilter(
 
     def filter_playable(self, queryset, name, value):
         actor = utils.get_actor_from_request(self.request)
-        return queryset.playable_by(actor, value)
+        return queryset.playable_by(actor, value).distinct()
 
 
 class UploadFilter(audio_filters.IncludeChannelsFilterSet):
diff --git a/front/src/views/library/DetailBase.vue b/front/src/views/library/DetailBase.vue
index b480d189e49c9a5072be0ee416e69aec64a4e3b1..48ebd062980e7b1b2cbe74404859c7ff09d063d4 100644
--- a/front/src/views/library/DetailBase.vue
+++ b/front/src/views/library/DetailBase.vue
@@ -105,13 +105,11 @@
                 </router-link>
               </div>
               <div class="ui hidden divider"></div>
-              <keep-alive>
                 <router-view
                   @updated="fetchData"
                   @uploads-finished="object.uploads_count += $event"
                   :is-owner="isOwner"
                   :object="object"></router-view>
-              </keep-alive>
             </div>
           </div>
         </div>