summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorÉmilien Devos <contact@emiliendevos.be>2022-08-23 09:50:57 +0000
committerÉmilien Devos <contact@emiliendevos.be>2022-08-23 19:34:54 +0000
commit389e49183c076362bb79ad377b227257488e2bce (patch)
treed96f3d393e94d026c220bd78d9568c70006d10b2 /src
parent4c1a5f84fa3310a2d2d6752d4bc8d42580c9baa0 (diff)
downloadinvidious-389e49183c076362bb79ad377b227257488e2bce.tar.gz
invidious-389e49183c076362bb79ad377b227257488e2bce.tar.bz2
invidious-389e49183c076362bb79ad377b227257488e2bce.zip
throw error if the videoID returned is different
Diffstat (limited to 'src')
-rw-r--r--src/invidious/exceptions.cr3
-rw-r--r--src/invidious/videos.cr4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/invidious/exceptions.cr b/src/invidious/exceptions.cr
index 05be73a6..425c08da 100644
--- a/src/invidious/exceptions.cr
+++ b/src/invidious/exceptions.cr
@@ -30,3 +30,6 @@ end
# Exception threw when an element is not found.
class NotFoundException < InfoException
end
+
+class VideoNotAvailableException < Exception
+end
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index cb1d1acf..5ed57727 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -909,6 +909,10 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
"reason" => JSON::Any.new(reason),
}
end
+ elsif video_id != player_response.dig("videoDetails", "videoId")
+ # YouTube may return a different video player response than expected.
+ # See: https://github.com/TeamNewPipe/NewPipe/issues/8713
+ raise VideoNotAvailableException.new("The video returned by YouTube isn't the requested one.")
else
reason = nil
end