diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue
index ad85e72ce82191d88edf18ccd3eb3fbb462bfb63..b1421225bd72419b45dfb21de6022a553929dbe3 100644
--- a/front/src/components/audio/PlayButton.vue
+++ b/front/src/components/audio/PlayButton.vue
@@ -110,7 +110,7 @@ export default {
           resolve(self.tracks)
         } else if (self.playlist) {
           let url = 'playlists/' + self.playlist.id + '/'
-          axios.get(url + 'tracks').then((response) => {
+          axios.get(url + 'tracks/').then((response) => {
             resolve(response.data.results.map(plt => {
               return plt.track
             }))
diff --git a/front/src/main.js b/front/src/main.js
index fde332acc7485e3c0e5a48a74c73cc44d39e8d36..eca2e620545a46e66dfc84606c3b85a0c2bab9f6 100644
--- a/front/src/main.js
+++ b/front/src/main.js
@@ -43,6 +43,10 @@ if (availableLanguages[store.state.ui.currentLanguage]) {
 Vue.use(GetTextPlugin, {
   availableLanguages: availableLanguages,
   defaultLanguage: defaultLanguage,
+  // cf https://github.com/Polyconseil/vue-gettext#configuration
+  // not recommended but this is fixing weird bugs with translation nodes
+  // not being updated when in v-if/v-else clauses
+  autoAddKeyAttributes: true,
   languageVmMixin: {
     computed: {
       currentKebabCase: function () {