+ formats = []
+ for a_format in video_data:
+ format_uri = url_or_none(a_format.get('uri'))
+ if not format_uri:
+ continue
+ format_id = a_format.get('resolution')
+ height = int_or_none(self._search_regex(
+ r'(\d+)p', format_id, 'height', default=None))
+ formats.append({
+ 'url': self._proto_relative_url(format_uri, 'https:'),
+ 'format_id': format_id,
+ 'ext': mimetype2ext(a_format.get('mime')) or 'mp4',
+ 'height': height,
+ 'width': int_or_none(height / 9.0 * 16.0 if height else None),
+ 'quality': 1 if format_id == 'Source' else 0,
+ })
+
+ self._sort_formats(formats)
+
+ return {