- 'title': video_info['title'],
- 'url': video_info['source_url']['mp4_url'],
- 'description': clean_html(video_info.get('body')),
- 'uploader': user_info.get('username'),
- 'uploader_id': compat_str(user_info.get('id')),
- 'release_date': unified_strdate(video_info.get('created_at')),
- 'timestamp': video_info.get('created_at_i'),
- 'view_count': int_or_none(video_info.get('total_views_count')),
- 'like_count': int_or_none(video_info.get('hearts_count')),
- 'comment_count': int_or_none(video_info.get('comments_count')),
- 'tags': [tag.get('text') for tag in video_info.get('tags', [])],
+ 'url': video_url,
+ 'title': title,
+ 'description': clean_html(video.get('body')),
+ 'duration': float_or_none(video.get('duration'), 1000),
+ 'timestamp': int_or_none(video.get('created_at_i')),
+ 'uploader': try_get(
+ video, lambda x: x['user']['username'], compat_str),
+ 'uploader_id': try_get(
+ video, lambda x: compat_str(x['user']['id'])),
+ 'view_count': int_or_none(video.get('total_views_count')),
+ 'like_count': int_or_none(video.get('hearts_count')),
+ 'comment_count': int_or_none(video.get('comments_count')),
+ 'tags': tags,