uploader_id, like_count, comment_count, comments, height,
width) = [None] * 11
- shared_data = self._parse_json(
- self._search_regex(
- r'window\._sharedData\s*=\s*({.+?});',
- webpage, 'shared data', default='{}'),
- video_id, fatal=False)
+ shared_data = try_get(webpage,
+ (lambda x: self._parse_json(
+ self._search_regex(
+ r'window\.__additionalDataLoaded\(\'/(?:p|tv)/(?:[^/?#&]+)/\',({.+?})\);',
+ x, 'additional data', default='{}'),
+ video_id, fatal=False),
+ lambda x: self._parse_json(
+ self._search_regex(
+ r'window\._sharedData\s*=\s*({.+?});',
+ x, 'shared data', default='{}'),
+ video_id, fatal=False)['entry_data']['PostPage'][0]),
+ None)
if shared_data:
media = try_get(
shared_data,
- (lambda x: x['entry_data']['PostPage'][0]['graphql']['shortcode_media'],
- lambda x: x['entry_data']['PostPage'][0]['media']),
+ (lambda x: x['graphql']['shortcode_media'],
+ lambda x: x['media']),
dict)
if media:
video_url = media.get('video_url')