- # Sometimes <ficher>s have no attributes at all. Skip them.
- if 'url' not in fichier.attrib:
- continue
-
- formats.append({
- 'format_id': 'lq',
- 'url': fichiers.attrib['serveurstream'],
- 'ext': determine_ext(fichier.attrib['url']),
- 'play_path': fichier.attrib['url'],
- 'width': int_or_none(concert.attrib['largeur']),
- 'height': int_or_none(concert.attrib['hauteur']),
- 'quality': 1,
- })
+ info_dict['duration'] = float_or_none(fichier.get('timecodefin'))
+ for quality, (format_id, suffix) in enumerate([('lq', ''), ('hq', '_hd')]):
+ format_url = fichier.get('url%s' % suffix)
+ if not format_url:
+ continue
+ formats.append({
+ 'url': stream,
+ 'play_path': format_url,
+ 'ext': 'flv',
+ 'format_id': format_id,
+ 'width': int_or_none(concert.get('largeur%s' % suffix)),
+ 'height': int_or_none(concert.get('hauteur%s' % suffix)),
+ 'quality': quality,
+ })
+ self._sort_formats(formats)