diff options
Diffstat (limited to 'youtube_dl/extractor/cspan.py')
| -rw-r--r-- | youtube_dl/extractor/cspan.py | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index d4576160b..171820e27 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -10,6 +10,7 @@ from ..utils import (      smuggle_url,      determine_ext,      ExtractorError, +    extract_attributes,  )  from .senateisvp import SenateISVPIE  from .ustream import UstreamIE @@ -68,6 +69,7 @@ class CSpanIE(InfoExtractor):              'uploader_id': '12987475',          },      }] +    BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/%s/%s_%s/index.html?videoId=%s'      def _real_extract(self, url):          video_id = self._match_id(url) @@ -78,6 +80,19 @@ class CSpanIE(InfoExtractor):          if ustream_url:              return self.url_result(ustream_url, UstreamIE.ie_key()) +        if '&vod' not in url: +            bc = self._search_regex( +                r"(<[^>]+id='brightcove-player-embed'[^>]+>)", +                webpage, 'brightcove embed', default=None) +            if bc: +                bc_attr = extract_attributes(bc) +                bc_url = self.BRIGHTCOVE_URL_TEMPLATE % ( +                    bc_attr.get('data-bcaccountid', '3162030207001'), +                    bc_attr.get('data-noprebcplayerid', 'SyGGpuJy3g'), +                    bc_attr.get('data-newbcplayerid', 'default'), +                    bc_attr['data-bcid']) +                return self.url_result(smuggle_url(bc_url, {'source_url': url})) +          # We first look for clipid, because clipprog always appears before          patterns = [r'id=\'clip(%s)\'\s*value=\'([0-9]+)\'' % t for t in ('id', 'prog')]          results = list(filter(None, (re.search(p, webpage) for p in patterns))) | 
