diff options
author | coletdjnz <coletdjnz@protonmail.com> | 2022-08-07 13:43:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-07 19:13:20 +0530 |
commit | a3e964211611ec60a3f84688ab9ff30e4c1504f6 (patch) | |
tree | 3714eac43106fcca17d5267ddce0e96789262d23 | |
parent | 43aebb7db45c346f0285d4b3bd50227dd3397416 (diff) | |
download | hypervideo-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.py | 9 |
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: |