[youtube] fix hd720 format position
[youtube-dl] / youtube_dl / extractor / npo.py
index f756331f878165694611a0338b83f829037e7830..ff215338744893a29b93202e6f1f72dd0186546f 100644 (file)
@@ -195,6 +195,10 @@ class NPOIE(NPOBaseIE):
         formats = []
         urls = set()
 
+        def is_legal_url(format_url):
+            return format_url and format_url not in urls and re.match(
+                r'^(?:https?:)?//', format_url)
+
         QUALITY_LABELS = ('Laag', 'Normaal', 'Hoog')
         QUALITY_FORMATS = ('adaptive', 'wmv_sb', 'h264_sb', 'wmv_bb', 'h264_bb', 'wvc1_std', 'h264_std')
 
@@ -208,7 +212,7 @@ class NPOIE(NPOBaseIE):
             })['items'][0]
         for num, item in enumerate(items):
             item_url = item.get('url')
-            if not item_url or item_url in urls:
+            if not is_legal_url(item_url):
                 continue
             urls.add(item_url)
             format_id = self._search_regex(
@@ -229,7 +233,7 @@ class NPOIE(NPOBaseIE):
                     quality = quality_from_format_id(format_id)
                     f_id = format_id
                 else:
-                    quality, f_id = None
+                    quality, f_id = [None] * 2
                 formats.append({
                     'url': format_url,
                     'format_id': f_id,
@@ -279,7 +283,7 @@ class NPOIE(NPOBaseIE):
         if not is_live:
             for num, stream in enumerate(metadata.get('streams', [])):
                 stream_url = stream.get('url')
-                if not stream_url or stream_url in urls:
+                if not is_legal_url(stream_url):
                     continue
                 urls.add(stream_url)
                 # smooth streaming is not supported