- brightcove_id = self._search_regex(
- r'<iframe[^>]+data-video-id=["\'](\d+)', webpage, 'brightcove id',
- default=None)
- if brightcove_id:
- return self.url_result(
- 'http://players.brightcove.net/2376984109001/default_default/index.html?videoId=%s' % brightcove_id,
- BrightcoveNewIE.ie_key())
+ brightcove_iframe = self._search_regex(
+ r'(<iframe[^>]+data-video-id=["\']\d+[^>]+>)', webpage,
+ 'brightcove iframe', default=None)
+ if brightcove_iframe:
+ attr = extract_attributes(brightcove_iframe)
+ src = attr.get('src')
+ if src:
+ parsed_src = compat_urlparse.urlparse(src)
+ qs = compat_urlparse.parse_qs(parsed_src.query)
+ account_id = qs.get('accountId', ['2376984109001'])[0]
+ brightcove_id = attr.get('data-video-id') or qs.get('videoId', [None])[0]
+ if account_id and brightcove_id:
+ return brightcove_url_result(
+ 'http://players.brightcove.net/%s/default_default/index.html?videoId=%s'
+ % (account_id, brightcove_id))