diff --git a/src/components/PreferencesPage.vue b/src/components/PreferencesPage.vue index 9259360dc5..eae7f63c56 100644 --- a/src/components/PreferencesPage.vue +++ b/src/components/PreferencesPage.vue @@ -69,6 +69,10 @@ + + + + @@ -438,6 +442,7 @@ export default { autoPlayNextCountdown: 5, listen: false, resolutions: [144, 240, 360, 480, 720, 1080, 1440, 2160, 4320], + preferHls: false, defaultQuality: 0, bufferingGoal: 10, countryMap: CountryMap, @@ -619,6 +624,7 @@ export default { localStorage.setItem("autoDisplayCaptions", this.autoDisplayCaptions); localStorage.setItem("autoPlayNextCountdown", this.autoPlayNextCountdown); localStorage.setItem("listen", this.listen); + localStorage.setItem("preferHls", this.preferHls); localStorage.setItem("quality", this.defaultQuality); localStorage.setItem("bufferGoal", this.bufferingGoal); localStorage.setItem("region", this.countrySelected); diff --git a/src/components/VideoPlayer.vue b/src/components/VideoPlayer.vue index 55209febc3..40532eaad5 100644 --- a/src/components/VideoPlayer.vue +++ b/src/components/VideoPlayer.vue @@ -328,7 +328,12 @@ export default { if (this.video.livestream) { uri = this.video.hls; mime = "application/x-mpegURL"; - } else if (this.video.audioStreams.length > 0 && !lbry && MseSupport) { + } else if ( + this.video.audioStreams.length > 0 && + !lbry && + MseSupport && + !this.getPreferenceBoolean("preferHls", false) + ) { if (!this.video.dash) { const dash = (await import("../utils/DashUtils.js")).generate_dash_file_from_formats( streams, diff --git a/src/locales/en.json b/src/locales/en.json index 70b8c5cb8d..0ca4740097 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -160,7 +160,8 @@ "creator_replied": "Creator replied", "creator_liked": "Creator liked", "playback_speed": "Playback speed", - "invalid_input": "Invalid input" + "invalid_input": "Invalid input", + "prefer_hls": "Prefer HLS over DASH" }, "comment": { "pinned_by": "Pinned by {author}",