[extractor/youtube] Fix video like count extraction
Support new combined button layout Authored by: coletdjnz
This commit is contained in:
parent
ae1035646a
commit
3ffb2f5bea
1 changed files with 18 additions and 13 deletions
|
@ -3911,19 +3911,24 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|||
vpir,
|
||||
lambda x: x['videoActions']['menuRenderer']['topLevelButtons'],
|
||||
list) or []):
|
||||
tbr = tlb.get('toggleButtonRenderer') or {}
|
||||
for getter, regex in [(
|
||||
lambda x: x['defaultText']['accessibility']['accessibilityData'],
|
||||
r'(?P<count>[\d,]+)\s*(?P<type>(?:dis)?like)'), ([
|
||||
lambda x: x['accessibility'],
|
||||
lambda x: x['accessibilityData']['accessibilityData'],
|
||||
], r'(?P<type>(?:dis)?like) this video along with (?P<count>[\d,]+) other people')]:
|
||||
label = (try_get(tbr, getter, dict) or {}).get('label')
|
||||
if label:
|
||||
mobj = re.match(regex, label)
|
||||
if mobj:
|
||||
info[mobj.group('type') + '_count'] = str_to_int(mobj.group('count'))
|
||||
break
|
||||
tbrs = variadic(
|
||||
traverse_obj(
|
||||
tlb, 'toggleButtonRenderer',
|
||||
('segmentedLikeDislikeButtonRenderer', ..., 'toggleButtonRenderer'),
|
||||
default=[]))
|
||||
for tbr in tbrs:
|
||||
for getter, regex in [(
|
||||
lambda x: x['defaultText']['accessibility']['accessibilityData'],
|
||||
r'(?P<count>[\d,]+)\s*(?P<type>(?:dis)?like)'), ([
|
||||
lambda x: x['accessibility'],
|
||||
lambda x: x['accessibilityData']['accessibilityData'],
|
||||
], r'(?P<type>(?:dis)?like) this video along with (?P<count>[\d,]+) other people')]:
|
||||
label = (try_get(tbr, getter, dict) or {}).get('label')
|
||||
if label:
|
||||
mobj = re.match(regex, label)
|
||||
if mobj:
|
||||
info[mobj.group('type') + '_count'] = str_to_int(mobj.group('count'))
|
||||
break
|
||||
sbr_tooltip = try_get(
|
||||
vpir, lambda x: x['sentimentBar']['sentimentBarRenderer']['tooltip'])
|
||||
if sbr_tooltip:
|
||||
|
|
Loading…
Reference in a new issue