diff --git a/config/config.example.yml b/config/config.example.yml index bb8b5ff2..81b7bc12 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -139,7 +139,7 @@ https_only: false ## Disable proxying server-wide. Can be disable as a whole, or ## only for a single function. ## -## Accepted values: true, false, dash, livestreams, downloads, local +## Accepted values: true, false, dash, livestreams, downloads, local, hls ## Default: false ## #disable_proxy: false diff --git a/src/invidious/routes/video_playback.cr b/src/invidious/routes/video_playback.cr index 26852d06..29c43f53 100644 --- a/src/invidious/routes/video_playback.cr +++ b/src/invidious/routes/video_playback.cr @@ -91,7 +91,7 @@ module Invidious::Routes::VideoPlayback end if url.includes? "&file=seg.ts" - if CONFIG.disabled?("livestreams") + if CONFIG.disabled?("livestreams") || CONFIG.disabled?("hls") return error_template(403, "Administrator has disabled this endpoint.") end diff --git a/src/invidious/videos/video_preferences.cr b/src/invidious/videos/video_preferences.cr index 48177bd8..b8f8acf9 100644 --- a/src/invidious/videos/video_preferences.cr +++ b/src/invidious/videos/video_preferences.cr @@ -105,8 +105,12 @@ def process_video_params(query, preferences) vr_mode = vr_mode == 1 save_player_pos = save_player_pos == 1 - if CONFIG.disabled?("dash") && quality == "dash" - quality = "high" + # Force set quality to "high" if dash or hls has been disabled by the server + {"dash", "hls"}.each do |disabled_quality| + if CONFIG.disabled?("dash") && quality == "dash" + quality = "high" + break + end end if CONFIG.disabled?("local") && local diff --git a/src/invidious/views/components/player.ecr b/src/invidious/views/components/player.ecr index b9b29601..4f1ab518 100644 --- a/src/invidious/views/components/player.ecr +++ b/src/invidious/views/components/player.ecr @@ -6,7 +6,7 @@ <% if params.controls %>controls<% end %>> <% if (hlsvp = video.hls_manifest_url) && video.live_now && !CONFIG.disabled?("livestreams") %> - <% elsif (hlsvp = video.hls_manifest_url) && params.quality == "hls" %> + <% elsif (hlsvp = video.hls_manifest_url) && params.quality == "hls" && !CONFIG.disabled?("hls") %> <% else %> <% if params.listen %> diff --git a/src/invidious/views/user/preferences.ecr b/src/invidious/views/user/preferences.ecr index 11f7890b..4927c63b 100644 --- a/src/invidious/views/user/preferences.ecr +++ b/src/invidious/views/user/preferences.ecr @@ -55,9 +55,9 @@