summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorabsidue <48293849+absidue@users.noreply.github.com>2024-02-12 18:55:15 +0100
committerabsidue <48293849+absidue@users.noreply.github.com>2024-02-12 18:55:15 +0100
commit72bcd3cc72cf10bda461235a39d18eee15130014 (patch)
treea9693d7603ea96408e39687b53352f602c7fb18a
parentcf686202e05cfdce708a4d0d37a18a055f43a1df (diff)
downloadinvidious-72bcd3cc72cf10bda461235a39d18eee15130014.tar.gz
invidious-72bcd3cc72cf10bda461235a39d18eee15130014.tar.bz2
invidious-72bcd3cc72cf10bda461235a39d18eee15130014.zip
Handle non-200 status codes for YouTube DASH manifests
-rw-r--r--src/invidious/routes/api/manifest.cr8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/invidious/routes/api/manifest.cr b/src/invidious/routes/api/manifest.cr
index 662d1002..d89e752c 100644
--- a/src/invidious/routes/api/manifest.cr
+++ b/src/invidious/routes/api/manifest.cr
@@ -21,7 +21,13 @@ module Invidious::Routes::API::Manifest
end
if dashmpd = video.dash_manifest_url
- manifest = YT_POOL.client &.get(URI.parse(dashmpd).request_target).body
+ response = YT_POOL.client &.get(URI.parse(dashmpd).request_target)
+
+ if response.status_code != 200
+ haltf env, status_code: response.status_code
+ end
+
+ manifest = response.body
manifest = manifest.gsub(/<BaseURL>[^<]+<\/BaseURL>/) do |baseurl|
url = baseurl.lchop("<BaseURL>")