- formats_list = []
- for elem in xml_tree.find('assets'):
- format_dict = {}
- format_dict['url'] = elem.find('progressiveDownloadUrl').text
- format_dict['ext'] = elem.find('mediaType').text.lower()
- format_dict['format'] = elem.find('profileName').text
- format_dict['width'] = int(elem.find('frameWidth').text)
- format_dict['height'] = int(elem.find('frameHeight').text)
- format_dict['resolution'] = '%dx%d' % (format_dict['width'],
- format_dict['height'])
- format_dict['abr'] = int(elem.find('bitrateAudio').text)
- format_dict['vbr'] = int(elem.find('bitrateVideo').text)
- format_dict['tbr'] = format_dict['abr'] + format_dict['vbr']
- format_dict['filesize'] = int(elem.find('fileSize').text)
-
- formats_list.append(format_dict)
-
- # Sort by resolution (=quality)
- formats_list.sort(key=lambda x: x['width'] * x['height'])
+ formats = [{
+ 'url': elem.find('progressiveDownloadUrl').text,
+ 'ext': elem.find('mediaType').text.lower(),
+ 'format': elem.find('profileName').text,
+ 'width': int(elem.find('frameWidth').text),
+ 'height': int(elem.find('frameHeight').text),
+ 'abr': int(elem.find('bitrateAudio').text),
+ 'vbr': int(elem.find('bitrateVideo').text),
+ 'filesize': int(elem.find('fileSize').text),
+ } for elem in xml_tree.find('assets')]
+ self._sort_formats(formats)