diff --git a/src/invidious.cr b/src/invidious.cr index b51b12f9..11490f58 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -206,12 +206,15 @@ before_all do |env| path = env.request.path allowed = { "/login", "/register", "/api/", - "/embed/", "/sb/", "/vi/", "/s_p/", "/yts/", "/ggpht/", "/api/manifest/", "/videoplayback", "/latest_version", "/download", "/companion/", } - unless allowed.any? { |p| path.starts_with?(p) } + + is_allowed = allowed.any? { |p| path.starts_with?(p) } + is_allowed ||= path.starts_with?("/embed/") && !CONFIG.require_login_for_embeds + + unless is_allowed env.redirect "/login?referer=#{URI.encode_www_form(path)}" halt env, 302 end diff --git a/src/invidious/config.cr b/src/invidious/config.cr index dab1e42a..ea813619 100644 --- a/src/invidious/config.cr +++ b/src/invidious/config.cr @@ -129,6 +129,7 @@ class Config property captcha_enabled : Bool = true property login_enabled : Bool = true property require_login : Bool = false + property require_login_for_embeds : Bool = false property registration_enabled : Bool = true property statistics_enabled : Bool = false property admins : Array(String) = [] of String