mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-30 12:01:28 +00:00
[youtube:tab] Reject webpage data if redirected to home page
Closes #2660
This commit is contained in:
parent
a30a6ed3e4
commit
1108613f02
|
@ -4244,6 +4244,16 @@ def _extract_data(self, url, item_id, ytcfg=None, fatal=True, webpage_fatal=Fals
|
||||||
if 'webpage' not in self._configuration_arg('skip'):
|
if 'webpage' not in self._configuration_arg('skip'):
|
||||||
webpage, data = self._extract_webpage(url, item_id, fatal=webpage_fatal)
|
webpage, data = self._extract_webpage(url, item_id, fatal=webpage_fatal)
|
||||||
ytcfg = ytcfg or self.extract_ytcfg(item_id, webpage)
|
ytcfg = ytcfg or self.extract_ytcfg(item_id, webpage)
|
||||||
|
# Reject webpage data if redirected to home page without explicitly requesting
|
||||||
|
selected_tab = self._extract_selected_tab(traverse_obj(
|
||||||
|
data, ('contents', 'twoColumnBrowseResultsRenderer', 'tabs'), expected_type=list, default=[])) or {}
|
||||||
|
if (url != 'https://www.youtube.com/feed/recommended'
|
||||||
|
and selected_tab.get('tabIdentifier') == 'FEwhat_to_watch' # Home page
|
||||||
|
and 'no-youtube-channel-redirect' not in self.get_param('compat_opts', [])):
|
||||||
|
msg = 'The channel/playlist does not exist and the URL redirected to youtube.com home page'
|
||||||
|
if fatal:
|
||||||
|
raise ExtractorError(msg, expected=True)
|
||||||
|
self.report_warning(msg, only_once=True)
|
||||||
if not data:
|
if not data:
|
||||||
if not ytcfg and self.is_authenticated:
|
if not ytcfg and self.is_authenticated:
|
||||||
msg = 'Playlists that require authentication may not extract correctly without a successful webpage download.'
|
msg = 'Playlists that require authentication may not extract correctly without a successful webpage download.'
|
||||||
|
|
Loading…
Reference in a new issue