diff --git a/src/components/PreferencesPage.vue b/src/components/PreferencesPage.vue index 507c598a..886251f8 100644 --- a/src/components/PreferencesPage.vue +++ b/src/components/PreferencesPage.vue @@ -45,6 +45,25 @@ @change="onChange($event)" /> + + + + + + + + + + @@ -403,6 +422,7 @@ export default { showMarkers: true, selectedTheme: "dark", autoPlayVideo: true, + priorityAutoPlay: false, listen: false, resolutions: [144, 240, 360, 480, 720, 1080, 1440, 2160, 4320], defaultQuality: 0, @@ -548,6 +568,7 @@ export default { this.showMarkers = this.getPreferenceBoolean("showMarkers", true); this.selectedTheme = this.getPreferenceString("theme", "dark"); this.autoPlayVideo = this.getPreferenceBoolean("playerAutoPlay", true); + this.priorityAutoPlay = this.getPreferenceBoolean("priorityAutoPlay", false); this.listen = this.getPreferenceBoolean("listen", false); this.defaultQuality = Number(localStorage.getItem("quality")); this.bufferingGoal = Math.max(Number(localStorage.getItem("bufferGoal")), 10); @@ -609,6 +630,7 @@ export default { localStorage.setItem("showMarkers", this.showMarkers); localStorage.setItem("theme", this.selectedTheme); localStorage.setItem("playerAutoPlay", this.autoPlayVideo); + localStorage.setItem("priorityAutoPlay", this.priorityAutoPlay); localStorage.setItem("listen", this.listen); localStorage.setItem("quality", this.defaultQuality); localStorage.setItem("bufferGoal", this.bufferingGoal); diff --git a/src/components/VideoPlayer.vue b/src/components/VideoPlayer.vue index c7f7b695..c9167dcf 100644 --- a/src/components/VideoPlayer.vue +++ b/src/components/VideoPlayer.vue @@ -58,6 +58,9 @@ export default { shouldAutoPlay: _this => { return _this.getPreferenceBoolean("playerAutoPlay", true) && !_this.isEmbed; }, + priorityAutoPlay: _this => { + return _this.getPreferenceBoolean("priorityAutoPlay", true) && !_this.isEmbed; + }, preferredVideoCodecs: _this => { var preferredVideoCodecs = []; const enabledCodecs = _this.getPreferenceString("enabledCodecs", "vp9,avc").split(","); @@ -396,7 +399,9 @@ export default { } }); } - this.setNextVideo(); + if (this.priorityAutoPlay) { + this.setNextVideo(); + } //TODO: Add sponsors on seekbar: https://github.com/ajayyy/SponsorBlock/blob/e39de9fd852adb9196e0358ed827ad38d9933e29/src/js-components/previewBar.ts#L12 }, diff --git a/src/locales/en.json b/src/locales/en.json index 1f9e94d4..b9a2398a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -45,6 +45,8 @@ "dark": "Dark", "light": "Light", "autoplay_video": "Autoplay Video", + "priority_autoplay": "Priority Autoplay", + "priority_autoplay_tooltip": "Prioritize unwatched videos from the same channel when selecting next video from related streams.", "audio_only": "Audio Only", "default_quality": "Default Quality", "buffering_goal": "Buffering Goal (in seconds)", diff --git a/src/main.js b/src/main.js index 19a037de..4194685b 100644 --- a/src/main.js +++ b/src/main.js @@ -21,6 +21,7 @@ import { faServer, faDonate, faBookmark, + faCircleQuestion, } from "@fortawesome/free-solid-svg-icons"; import { faGithub, faBitcoin, faYoutube } from "@fortawesome/free-brands-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; @@ -48,6 +49,7 @@ library.add( faServer, faDonate, faBookmark, + faCircleQuestion, ); import router from "@/router/router.js";