[viewster] improve http formats extraction
authorremitamine <remitamine@gmail.com>
Sun, 24 Apr 2016 13:33:47 +0000 (14:33 +0100)
committerremitamine <remitamine@gmail.com>
Sun, 24 Apr 2016 13:34:28 +0000 (14:34 +0100)
youtube_dl/extractor/viewster.py

index 4289a2f315eb95330f6a83765ddc695c314786ae..7839225d426ddc17f1f4ca948fa4af5e6685d37e 100644 (file)
@@ -146,21 +146,26 @@ class ViewsterIE(InfoExtractor):
                 qualities_basename = self._search_regex(
                     '/([^/]+)\.csmil/',
                     manifest_url, 'qualities basename', default=None)
-                if qualities_basename:
-                    QUALITIES_RE = r'((,\d+k)+,?)'
-                    qualities = self._search_regex(
-                        QUALITIES_RE, qualities_basename,
-                        'qualities').strip(',').split(',')
-                    http_template = re.sub(QUALITIES_RE, r'%s', qualities_basename)
-                    http_url_basename = url_basename(video_url)
-                    for q in qualities:
-                        formats.append({
-                            'url': video_url.replace(http_url_basename, http_template % q),
-                            'ext': 'mp4',
-                            'format_id': 'http-%s' % q,
-                            'tbr': int_or_none(self._search_regex(
-                                r'(\d+)k', q, 'bitrate', default=None)),
-                        })
+                if not qualities_basename:
+                    continue
+                QUALITIES_RE = r'((,\d+k)+,?)'
+                qualities = self._search_regex(
+                    QUALITIES_RE, qualities_basename,
+                    'qualities', default=None)
+                if not qualities:
+                    continue
+                qualities = qualities.strip(',').split(',')
+                http_template = re.sub(QUALITIES_RE, r'%s', qualities_basename)
+                http_url_basename = url_basename(video_url)
+                for q in qualities:
+                    tbr = int_or_none(self._search_regex(
+                        r'(\d+)k', q, 'bitrate', default=None))
+                    formats.append({
+                        'url': video_url.replace(http_url_basename, http_template % q),
+                        'ext': 'mp4',
+                        'format_id': 'http' + ('-%d' % tbr if tbr else ''),
+                        'tbr': tbr,
+                    })
 
         if not formats and not info.get('LanguageSets') and not info.get('VODSettings'):
             self.raise_geo_restricted()