about summary refs log tree commit diff
path: root/youtube_dl/extractor/pbs.py
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2016-08-13 09:08:57 +0100
committerRemita Amine <remitamine@gmail.com>2016-08-13 09:10:09 +0100
commitf50365e91cfccf33d0b5696c7f989944bcf748e7 (patch)
tree1a42a5d4c11082da59cc3efe9d82ba1710a412de /youtube_dl/extractor/pbs.py
parentc366f8d30a177d2d44130c9d077b15a4c960c003 (diff)
downloadyoutube-dl-f50365e91cfccf33d0b5696c7f989944bcf748e7.tar.gz
youtube-dl-f50365e91cfccf33d0b5696c7f989944bcf748e7.tar.xz
youtube-dl-f50365e91cfccf33d0b5696c7f989944bcf748e7.zip
[pbs] add test for videos with undocumented http formats and remove unused import
Diffstat (limited to 'youtube_dl/extractor/pbs.py')
-rw-r--r--youtube_dl/extractor/pbs.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py
index 6e2ef0fba..335e44bdc 100644
--- a/youtube_dl/extractor/pbs.py
+++ b/youtube_dl/extractor/pbs.py
@@ -4,7 +4,6 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
-from ..compat import compat_HTTPError
 from ..utils import (
     ExtractorError,
     determine_ext,
@@ -335,6 +334,16 @@ class PBSIE(InfoExtractor):
             },
         },
         {
+            # has undocumented http formats(4500k and 6500k)
+            'url': 'http://www.pbs.org/video/2365815229/',
+            'md5': '94635cd06b7133688e23f4b94e6637a5',
+            'info_dict': {
+                'id': '2365815229',
+                'ext': 'mp4',
+                'title': 'FRONTLINE - Mosquito Hunter',
+            },
+        },
+        {
             'url': 'http://player.pbs.org/widget/partnerplayer/2365297708/?start=0&end=0&chapterbar=false&endscreen=false&topbar=true',
             'only_matching': True,
         },
@@ -501,14 +510,18 @@ class PBSIE(InfoExtractor):
         if http_url:
             for m3u8_format in m3u8_formats:
                 bitrate = self._search_regex(r'(\d+)k', m3u8_format['url'], 'bitrate', default=None)
-                # extract only the formats that we know that they will be available as http format.
+                # lower qualities(150k and 192k) are not available as http formats
+                # https://github.com/rg3/youtube-dl/commit/cbc032c8b70a038a69259378c92b4ba97b42d491#commitcomment-17313656
+                # we will try to extract any http format higher than than the lowest quality documented in
                 # https://projects.pbs.org/confluence/display/coveapi/COVE+Video+Specifications
+                # as there also undocumented http formats formats(4500k and 6500k)
+                # http://www.pbs.org/video/2365815229/
                 if not bitrate or int(bitrate) < 400:
                     continue
                 f_url = re.sub(r'\d+k|baseline', bitrate + 'k', 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):
+                if not self._is_valid_url(f_url, display_id, 'http-%sk video' % bitrate):
                     continue
                 f = m3u8_format.copy()
                 f.update({