summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-06-27 23:06:42 +0700
committerSergey M․ <dstftw@gmail.com>2016-06-27 23:06:42 +0700
commit8704778d95d2abef021757c85efd75664c6a424a (patch)
tree465626d03a2e3f773b0c3b6ee693694b5791d9bd
parentc287f2bc6073182323aada26309539d724943fa8 (diff)
downloadyoutube-dl-8704778d95d2abef021757c85efd75664c6a424a.tar.gz
youtube-dl-8704778d95d2abef021757c85efd75664c6a424a.tar.xz
youtube-dl-8704778d95d2abef021757c85efd75664c6a424a.zip
[pbs] Check manually constructed http links (Closes #9921)
-rw-r--r--youtube_dl/extractor/pbs.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py
index 81918ac6e..f6f423597 100644
--- a/youtube_dl/extractor/pbs.py
+++ b/youtube_dl/extractor/pbs.py
@@ -516,9 +516,14 @@ class PBSIE(InfoExtractor):
                 # https://projects.pbs.org/confluence/display/coveapi/COVE+Video+Specifications
                 if not bitrate or bitrate not in ('400k', '800k', '1200k', '2500k'):
                     continue
+                f_url = re.sub(r'\d+k|baseline', bitrate, http_url)
+                # This may produce invalid links sometimes (e.g.
+                # http://www.pbs.org/wgbh/frontline/film/suicide-plan)
+                if not self._is_valid_url(f_url, display_id, 'http-%s video' % bitrate):
+                    continue
                 f = m3u8_format.copy()
                 f.update({
-                    'url': re.sub(r'\d+k|baseline', bitrate, http_url),
+                    'url': f_url,
                     'format_id': m3u8_format['format_id'].replace('hls', 'http'),
                     'protocol': 'http',
                 })