summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-01-14 20:00:46 +0100
committerSamantaz Fox <coding@samantaz.fr>2023-01-14 20:00:46 +0100
commit4ee483282e072473b618df1ce9a96668c2905cf5 (patch)
tree2f53346f160394934dafd68de21941e12891ef7c
parent05258d56bdc3f4de1f0da0c0dbd2d540f68cbdd5 (diff)
downloadinvidious-4ee483282e072473b618df1ce9a96668c2905cf5.tar.gz
invidious-4ee483282e072473b618df1ce9a96668c2905cf5.tar.bz2
invidious-4ee483282e072473b618df1ce9a96668c2905cf5.zip
Video proxy: always include the 'range' header
-rw-r--r--src/invidious/routes/video_playback.cr10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/invidious/routes/video_playback.cr b/src/invidious/routes/video_playback.cr
index 560f9c19..a0216cce 100644
--- a/src/invidious/routes/video_playback.cr
+++ b/src/invidious/routes/video_playback.cr
@@ -35,6 +35,13 @@ module Invidious::Routes::VideoPlayback
end
end
+ # See: https://github.com/iv-org/invidious/issues/3302
+ range_header = env.request.headers["Range"]?
+ if range_header.nil?
+ range_for_head = query_params["range"]? || "0-640"
+ headers["Range"] = "bytes=#{range_for_head}"
+ end
+
client = make_client(URI.parse(host), region)
response = HTTP::Client::Response.new(500)
error = ""
@@ -70,6 +77,9 @@ module Invidious::Routes::VideoPlayback
end
end
+ # Remove the Range header added previously.
+ headers.delete("Range") if range_header.nil?
+
if response.status_code >= 400
env.response.content_type = "text/plain"
haltf env, response.status_code