[extractor/youtube] Prevent redirect to unwanted videos (#4593)

Example: https://www.youtube.com/watch?v=aQvGIIdgFDM

Authored by: coletdjnz
This commit is contained in:
coletdjnz 2022-08-07 13:43:20 +00:00 committed by GitHub
parent 43aebb7db4
commit a3e9642116
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View 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: