diff --git a/changes/changelog.d/761.enhancement b/changes/changelog.d/761.enhancement
new file mode 100644
index 0000000000000000000000000000000000000000..005e9156dc13e8f4484695a710d1e1b89c34a86c
--- /dev/null
+++ b/changes/changelog.d/761.enhancement
@@ -0,0 +1 @@
+Added the option to replace the queue's current contents with a selected album or track (#761)
\ No newline at end of file
diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue
index c1eeeedd47b30c308fee7bbba6861e1942d1d00f..3d9e317681dc38d479e2e7e8e25619dbfaf0313d 100644
--- a/front/src/components/audio/PlayButton.vue
+++ b/front/src/components/audio/PlayButton.vue
@@ -19,7 +19,11 @@
           <i class="step forward icon"></i>{{ labels.playNext }}
         </button>
         <button class="item basic" ref="playNow" data-ref="playNow" :disabled="!playable" @click.stop.prevent="addNext(true)" :title="labels.playNow">
-          <i class="play icon"></i>{{ labels.playNow }}</button>
+          <i class="play icon"></i>{{ labels.playNow }}
+        </button>
+        <button class="item basic" ref="replacePlay" data-ref="replacePlay" :disabled="!playable" @click.stop.prevent="replacePlay()" :title="labels.replacePlay">
+          <i class="list icon"></i>{{ labels.replacePlay }}
+        </button>
         <button v-if="track" class="item basic" :disabled="!playable" @click.stop.prevent="$store.dispatch('radios/start', {type: 'similar', objectId: track.id})" :title="labels.startRadio">
           <i class="feed icon"></i><translate translate-context="*/Queue/Button.Label/Short, Verb">Start radio</translate>
         </button>
@@ -74,7 +78,8 @@ export default {
         playNow: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Play now'),
         addToQueue: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Add to current queue'),
         playNext: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Play next'),
-        startRadio: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Play similar songs')
+        startRadio: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Play similar songs'),
+        replacePlay: this.$pgettext('*/Queue/Dropdown/Button/Title', 'Replace current queue')
       }
     },
     title () {
@@ -201,6 +206,14 @@ export default {
       })
       jQuery(self.$el).find('.ui.dropdown').dropdown('hide')
     },
+    replacePlay () {
+      let self = this
+      self.$store.dispatch('queue/clean')
+      this.getPlayableTracks().then((tracks) => {
+        self.$store.dispatch('queue/appendMany', {tracks: tracks}).then(() => self.addMessage(tracks))
+      })
+      jQuery(self.$el).find('.ui.dropdown').dropdown('hide')
+    },
     addNext (next) {
       let self = this
       let wasEmpty = this.$store.state.queue.tracks.length === 0