[youtube:tab] Improve grid continuation extraction (closes #28130)
This commit is contained in:
parent
7f8b8bc418
commit
a4c7ed6b1e
1 changed files with 10 additions and 3 deletions
|
@ -2374,9 +2374,9 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor):
|
|||
next_continuation = cls._extract_next_continuation_data(renderer)
|
||||
if next_continuation:
|
||||
return next_continuation
|
||||
contents = renderer.get('contents')
|
||||
if not isinstance(contents, list):
|
||||
return
|
||||
contents = []
|
||||
for key in ('contents', 'items'):
|
||||
contents.extend(try_get(renderer, lambda x: x[key], list) or [])
|
||||
for content in contents:
|
||||
if not isinstance(content, dict):
|
||||
continue
|
||||
|
@ -2509,6 +2509,13 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor):
|
|||
continuation_item = continuation_items[0]
|
||||
if not isinstance(continuation_item, dict):
|
||||
continue
|
||||
renderer = continuation_item.get('gridVideoRenderer')
|
||||
if renderer:
|
||||
grid_renderer = {'items': continuation_items}
|
||||
for entry in self._grid_entries(grid_renderer):
|
||||
yield entry
|
||||
continuation = self._extract_continuation(grid_renderer)
|
||||
continue
|
||||
renderer = continuation_item.get('playlistVideoRenderer') or continuation_item.get('itemSectionRenderer')
|
||||
if renderer:
|
||||
video_list_renderer = {'contents': continuation_items}
|
||||
|
|
Loading…
Reference in a new issue