X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fnpo.py;h=ff215338744893a29b93202e6f1f72dd0186546f;hb=54fc90aabfb71968f28af68dfe3f7a3544cc2f0b;hp=f756331f878165694611a0338b83f829037e7830;hpb=ee706f1009a90e9911f31d01aa9eae41cc34e75b;p=youtube-dl diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index f756331f8..ff2153387 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -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