From 2c1400c41e3236b9aa9c84cf73d5864090d52af6 Mon Sep 17 00:00:00 2001
From: absidue <48293849+absidue@users.noreply.github.com>
Date: Sat, 3 May 2025 22:28:19 +0200
Subject: [PATCH] Fix proxying live DASH streams (#4589)

---
 src/invidious/routes/video_playback.cr | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/invidious/routes/video_playback.cr b/src/invidious/routes/video_playback.cr
index b1c788c2..083087a9 100644
--- a/src/invidious/routes/video_playback.cr
+++ b/src/invidious/routes/video_playback.cr
@@ -21,7 +21,7 @@ module Invidious::Routes::VideoPlayback
     end
 
     # Sanity check, to avoid being used as an open proxy
-    if !host.matches?(/[\w-]+.googlevideo.com/)
+    if !host.matches?(/[\w-]+\.(?:googlevideo|c\.youtube)\.com/)
       return error_template(400, "Invalid \"host\" parameter.")
     end
 
@@ -37,7 +37,8 @@ module Invidious::Routes::VideoPlayback
 
     # See: https://github.com/iv-org/invidious/issues/3302
     range_header = env.request.headers["Range"]?
-    if range_header.nil?
+    sq = query_params["sq"]?
+    if range_header.nil? && sq.nil?
       range_for_head = query_params["range"]? || "0-640"
       headers["Range"] = "bytes=#{range_for_head}"
     end