Throw error if the returned videoID is different (#3278)

This commit is contained in:
Samantaz Fox 2022-08-23 21:59:22 +02:00
commit 16b23efb4f
No known key found for this signature in database
GPG Key ID: F42821059186176E
2 changed files with 7 additions and 0 deletions

View File

@ -30,3 +30,6 @@ end
# Exception threw when an element is not found. # Exception threw when an element is not found.
class NotFoundException < InfoException class NotFoundException < InfoException
end end
class VideoNotAvailableException < Exception
end

View File

@ -909,6 +909,10 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
"reason" => JSON::Any.new(reason), "reason" => JSON::Any.new(reason),
} }
end 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 else
reason = nil reason = nil
end end