diff --git a/src/invidious/routes/errors.cr b/src/invidious/routes/errors.cr index 1e9ab44e..2ac6b436 100644 --- a/src/invidious/routes/errors.cr +++ b/src/invidious/routes/errors.cr @@ -4,15 +4,17 @@ module Invidious::Routes::ErrorRoutes if HOST_URL.empty? && env.request.path.starts_with?("/v1/storyboards/sb") return env.redirect "#{env.request.path[15..]}?#{env.params.query}" end - + if md = env.request.path.match(/^\/(?([a-zA-Z0-9_-]{11})|(\w+))$/) item = md["id"] # Check if item is branding URL e.g. https://youtube.com/gaming - response = YT_POOL.client &.get("/#{item}") - + headers = HTTP::Headers{ + "Cookie" => "SOCS=CAE" # Cookies to prevent redirects to Cookie Consent Page CAE~Reject all, CAA~showing the cookie banner, CAI~Accept all + } + response = YT_POOL.client &.get("/#{item}", headers: headers) if response.status_code == 301 - response = YT_POOL.client &.get(URI.parse(response.headers["Location"]).request_target) + response = YT_POOL.client &.get(URI.parse(response.headers["Location"]).request_target, headers: headers) end if response.body.empty? @@ -49,4 +51,4 @@ module Invidious::Routes::ErrorRoutes env.response.headers["Location"] = "/" haltf env, status_code: 302 end -end +end \ No newline at end of file