aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-02-26 21:50:51 +0700
committerSergey M․ <dstftw@gmail.com>2018-02-26 21:50:51 +0700
commitd1b61870127fdee53147ac4c249af34a35562dbe (patch)
tree9b16820cfc89c5ed8721f2ce5b0f8430270207c7
parent6ab35f5e16bf738b47f0d27d22cfbb3b0e5fcf06 (diff)
downloadyoutube-dl-d1b61870127fdee53147ac4c249af34a35562dbe.tar.xz
[npo] Validate and filter format URLs (closes #15709)
-rw-r--r--youtube_dl/extractor/npo.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py
index f756331f8..eafce4b84 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(
@@ -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