mirror of
https://gitea.invidious.io/iv-org/invidious-copy-2023-06-08.git
synced 2024-08-15 00:53:38 +00:00
add check video id for android client too (#3280)
This commit is contained in:
parent
16b23efb4f
commit
a7d9df5516
1 changed files with 7 additions and 3 deletions
|
@ -912,7 +912,7 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
|
||||||
elsif video_id != player_response.dig("videoDetails", "videoId")
|
elsif video_id != player_response.dig("videoDetails", "videoId")
|
||||||
# YouTube may return a different video player response than expected.
|
# YouTube may return a different video player response than expected.
|
||||||
# See: https://github.com/TeamNewPipe/NewPipe/issues/8713
|
# See: https://github.com/TeamNewPipe/NewPipe/issues/8713
|
||||||
raise VideoNotAvailableException.new("The video returned by YouTube isn't the requested one.")
|
raise VideoNotAvailableException.new("The video returned by YouTube isn't the requested one. (WEB client)")
|
||||||
else
|
else
|
||||||
reason = nil
|
reason = nil
|
||||||
end
|
end
|
||||||
|
@ -937,10 +937,14 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
|
||||||
end
|
end
|
||||||
android_player = YoutubeAPI.player(video_id: video_id, params: "", client_config: client_config)
|
android_player = YoutubeAPI.player(video_id: video_id, params: "", client_config: client_config)
|
||||||
|
|
||||||
# Sometime, the video is available from the web client, but not on Android, so check
|
# Sometimes, the video is available from the web client, but not on Android, so check
|
||||||
# that here, and fallback to the streaming data from the web client if needed.
|
# that here, and fallback to the streaming data from the web client if needed.
|
||||||
# See: https://github.com/iv-org/invidious/issues/2549
|
# See: https://github.com/iv-org/invidious/issues/2549
|
||||||
if android_player["playabilityStatus"]["status"] == "OK"
|
if video_id != android_player.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. (ANDROID client)")
|
||||||
|
elsif android_player["playabilityStatus"]["status"] == "OK"
|
||||||
params["streamingData"] = android_player["streamingData"]? || JSON::Any.new("")
|
params["streamingData"] = android_player["streamingData"]? || JSON::Any.new("")
|
||||||
else
|
else
|
||||||
params["streamingData"] = player_response["streamingData"]? || JSON::Any.new("")
|
params["streamingData"] = player_response["streamingData"]? || JSON::Any.new("")
|
||||||
|
|
Loading…
Reference in a new issue