- 'id': video_id,
- 'title': info.get('name'),
- 'description': clean_html(info.get('description')),
- 'age_limit': self._RATINGS[rating] if rating in self._RATINGS else None,
- 'is_live': True if info.get('online') else False,
- 'timestamp': parse_iso8601(info.get('updatedAt')),
- 'uploader': info.get('token') or username,
- 'uploader_id': int_or_none(info.get('userId')),
- 'view_count': int_or_none(info.get('viewersTotal')),
- 'thumbnail': thumbnail,
+ 'id': compat_str(chan.get('id') or channel_name),
+ 'title': self._live_title(chan.get('name') or channel_name),
+ 'description': clean_html(chan.get('description')),
+ 'thumbnail': try_get(chan, lambda x: x['thumbnail']['url'], compat_str),
+ 'timestamp': parse_iso8601(chan.get('updatedAt')),
+ 'uploader': chan.get('token') or try_get(
+ chan, lambda x: x['user']['username'], compat_str),
+ 'uploader_id': compat_str(user_id) if user_id else None,
+ 'age_limit': self._RATINGS.get(chan.get('audience')),
+ 'is_live': True,
+ 'view_count': int_or_none(chan.get('viewersTotal')),
+ 'formats': formats,