diff --git a/changes/changelog.d/488.bugfix b/changes/changelog.d/488.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..a670ee7431d677db6cd04b6ec2f14ea1905b0d89
--- /dev/null
+++ b/changes/changelog.d/488.bugfix
@@ -0,0 +1 @@
+Display public playlists properly for anonymous users (#488)
diff --git a/front/src/views/playlists/Detail.vue b/front/src/views/playlists/Detail.vue
index f9d2327759f814ff582769534cf9edcabffc5b04..5e69f4dd1eae989fe4c12a8c7dc031884b196ea3 100644
--- a/front/src/views/playlists/Detail.vue
+++ b/front/src/views/playlists/Detail.vue
@@ -24,13 +24,13 @@
         <play-button class="orange" :tracks="tracks"><translate>Play all</translate></play-button>
         <button
           class="ui icon button"
-          v-if="playlist.user.id === $store.state.auth.profile.id"
+          v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id"
           @click="edit = !edit">
           <i class="pencil icon"></i>
           <template v-if="edit"><translate>End edition</translate></template>
           <template v-else><translate>Edit...</translate></template>
         </button>
-        <dangerous-button v-if="playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist">
+        <dangerous-button v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist">
           <i class="trash icon"></i> <translate>Delete</translate>
           <p slot="modal-header">
             <translate :translate-params="{playlist: playlist.name}">Do you want to delete the playlist "%{ playlist }"?</translate>