aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcoletdjnz <coletdjnz@protonmail.com>2022-08-07 13:43:20 +0000
committerGitHub <noreply@github.com>2022-08-07 19:13:20 +0530
commita3e964211611ec60a3f84688ab9ff30e4c1504f6 (patch)
tree3714eac43106fcca17d5267ddce0e96789262d23
parent43aebb7db45c346f0285d4b3bd50227dd3397416 (diff)
downloadhypervideo-pre-a3e964211611ec60a3f84688ab9ff30e4c1504f6.tar.lz
hypervideo-pre-a3e964211611ec60a3f84688ab9ff30e4c1504f6.tar.xz
hypervideo-pre-a3e964211611ec60a3f84688ab9ff30e4c1504f6.zip
[extractor/youtube] Prevent redirect to unwanted videos (#4593)
Example: https://www.youtube.com/watch?v=aQvGIIdgFDM Authored by: coletdjnz
-rw-r--r--yt_dlp/extractor/youtube.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py
index 4ad8cf900..1b4e47b5f 100644
--- a/yt_dlp/extractor/youtube.py
+++ b/yt_dlp/extractor/youtube.py
@@ -3133,7 +3133,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
continue
if pr:
- prs.append(pr)
+ # YouTube may return a different video player response than expected.
+ # See: https://github.com/TeamNewPipe/NewPipe/issues/8713
+ pr_video_id = traverse_obj(pr, ('videoDetails', 'videoId'))
+ if pr_video_id and pr_video_id != video_id:
+ self.report_warning(
+ f'{client} client returned a player response for "{pr_video_id}" instead of "{video_id}"' + bug_reports_message())
+ else:
+ prs.append(pr)
# creator clients can bypass AGE_VERIFICATION_REQUIRED if logged in
if variant == 'embedded' and self._is_unplayable(pr) and self.is_authenticated: