]+class=(["\']).*?login_error_box.*?\1[^>]*>
]*>.*?
]*>(?P.+?)
',
@@ -465,6 +466,7 @@ def extract_metadata(webpage):
description = get_first(media, ('creation_story', 'comet_sections', 'message', 'story', 'message', 'text'))
uploader_data = (
get_first(media, ('owner', {dict}))
+ or get_first(post, ('video', 'creation_story', 'attachments', ..., 'media', lambda k, v: k == 'owner' and v['name']))
or get_first(post, (..., 'video', lambda k, v: k == 'owner' and v['name']))
or get_first(post, ('node', 'actors', ..., {dict})) or {})
@@ -555,7 +557,7 @@ def extract_relay_data(_filter):
def extract_relay_prefetched_data(_filter):
return traverse_obj(extract_relay_data(_filter), (
'require', (None, (..., ..., ..., '__bbox', 'require')),
- lambda _, v: 'RelayPrefetchedStreamCache' in v, ..., ...,
+ lambda _, v: any(key.startswith('RelayPrefetchedStreamCache') for key in v if isinstance(key, str)), ..., ...,
'__bbox', 'result', 'data', {dict}), get_all=False) or {}
if not video_data: