- 'id': video_id,
- 'url': video_url,
- 'title': title,
- 'thumbnail': self._og_search_thumbnail(webpage),
- 'creator': clip.get('broadcaster_display_name') or clip.get('broadcaster_login'),
- 'uploader': clip.get('curator_login'),
- 'uploader_id': clip.get('curator_display_name'),
+ 'id': clip.get('id') or video_id,
+ 'title': clip.get('title') or video_id,
+ 'formats': formats,
+ 'duration': int_or_none(clip.get('durationSeconds')),
+ 'views': int_or_none(clip.get('viewCount')),
+ 'timestamp': unified_timestamp(clip.get('createdAt')),
+ 'thumbnails': thumbnails,
+ 'creator': try_get(clip, lambda x: x['broadcaster']['displayName'], compat_str),
+ 'uploader': try_get(clip, lambda x: x['curator']['displayName'], compat_str),
+ 'uploader_id': try_get(clip, lambda x: x['curator']['id'], compat_str),