-
- video_urlpart = videopath.split('/adaptive/')[1][:-5]
- PG_URL_TEMPLATE = 'http://pg.us.rtl.nl/rtlxl/network/%s/progressive/%s.mp4'
-
- PG_FORMATS = (
- ('a2t', 512, 288),
- ('a3t', 704, 400),
- ('nettv', 1280, 720),
- )
-
- def pg_format(format_id, width, height):
- return {
- 'url': PG_URL_TEMPLATE % (format_id, video_urlpart),
- 'format_id': 'pg-%s' % format_id,
- 'protocol': 'http',
- 'width': width,
- 'height': height,
- }
-
- if not formats:
- formats = [pg_format(*pg_tuple) for pg_tuple in PG_FORMATS]
- else:
- pg_formats = []
- for format_id, width, height in PG_FORMATS:
- try:
- # Find hls format with the same width and height corresponding
- # to progressive format and copy metadata from it.
- f = next(f for f in formats if f.get('height') == height)
- # hls formats may have invalid width
- f['width'] = width
- f_copy = f.copy()
- f_copy.update(pg_format(format_id, width, height))
- pg_formats.append(f_copy)
- except StopIteration:
- # Missing hls format does mean that no progressive format with
- # such width and height exists either.
- pass
- formats.extend(pg_formats)