diff options
| author | absidue <48293849+absidue@users.noreply.github.com> | 2024-02-12 18:55:15 +0100 |
|---|---|---|
| committer | absidue <48293849+absidue@users.noreply.github.com> | 2024-02-12 18:55:15 +0100 |
| commit | 72bcd3cc72cf10bda461235a39d18eee15130014 (patch) | |
| tree | a9693d7603ea96408e39687b53352f602c7fb18a /src | |
| parent | cf686202e05cfdce708a4d0d37a18a055f43a1df (diff) | |
| download | invidious-72bcd3cc72cf10bda461235a39d18eee15130014.tar.gz invidious-72bcd3cc72cf10bda461235a39d18eee15130014.tar.bz2 invidious-72bcd3cc72cf10bda461235a39d18eee15130014.zip | |
Handle non-200 status codes for YouTube DASH manifests
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/routes/api/manifest.cr | 8 |
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>") |
