]> jfr.im git - yt-dlp.git/commitdiff
[extractor/youtube] Prevent redirect to unwanted videos (#4593)
authorcoletdjnz <redacted>
Sun, 7 Aug 2022 13:43:20 +0000 (13:43 +0000)
committerGitHub <redacted>
Sun, 7 Aug 2022 13:43:20 +0000 (19:13 +0530)
Example: https://www.youtube.com/watch?v=aQvGIIdgFDM

Authored by: coletdjnz

yt_dlp/extractor/youtube.py

index 4ad8cf90038cd2756e5a5408408523c4f5792935..1b4e47b5f92735112a093e8742f6d5d4a5c54f92 100644 (file)
@@ -3133,7 +3133,14 @@ def append_client(*client_names):
                 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: