Brightcove extractor: support customBC.createVideo(...); method

found in http://www.americanbar.org/groups/family_law.html and
http://america.aljazeera.com/watch/shows/america-tonight/2015/6/exclusive-hunting-isil-with-the-pkk.html
This commit is contained in:
fnord 2015-06-13 06:09:44 -05:00
parent 78e2b74bb9
commit b4e1576aee

View file

@ -188,7 +188,19 @@ def _extract_brightcove_urls(cls, webpage):
[^>]*?>\s*<param\s+name="movie"\s+value="https?://[^/]*brightcove\.com/ [^>]*?>\s*<param\s+name="movie"\s+value="https?://[^/]*brightcove\.com/
).+?>\s*</object>''', ).+?>\s*</object>''',
webpage) webpage)
return list(filter(None, [cls._build_brighcove_url(m) for m in matches])) if matches:
return list(filter(None, [cls._build_brighcove_url(m) for m in matches]))
custombcs = re.findall(r'customBC.\createVideo\((.+?)\);',webpage)
if custombcs:
urls = []
for match in custombcs:
# brightcove playerkey begins with AQ and is 50 characters in length,
# however it's appended to itself in places, so truncate.
f = re.search(r'["\'](AQ[^"\']{48}).*?["\'](\d+)["\']', match)
if f:
urls.append('brightcove:playerKey='+f.group(1)+'&%40videoPlayer='+f.group(2))
return urls
def _real_extract(self, url): def _real_extract(self, url):
url, smuggled_data = unsmuggle_url(url, {}) url, smuggled_data = unsmuggle_url(url, {})