|
@@ -127,25 +127,28 @@ class BrightcoveIE(InfoExtractor):
|
|
|
|
|
|
@classmethod
|
|
|
def _extract_brightcove_url(cls, webpage):
|
|
|
- """Try to extract the brightcove url from the wepbage, returns None
|
|
|
+ """Try to extract the brightcove url from the webpage, returns None
|
|
|
if it can't be found
|
|
|
"""
|
|
|
+ urls = cls._extract_brightcove_urls(webpage)
|
|
|
+ return urls[0] if urls else None
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def _extract_brightcove_urls(cls, webpage):
|
|
|
+ """Return a list of all Brightcove URLs from the webpage """
|
|
|
|
|
|
url_m = re.search(r'<meta\s+property="og:video"\s+content="(http://c.brightcove.com/[^"]+)"', webpage)
|
|
|
if url_m:
|
|
|
- return url_m.group(1)
|
|
|
+ return [url_m.group(1)]
|
|
|
|
|
|
- m_brightcove = re.search(
|
|
|
+ matches = re.findall(
|
|
|
r'''(?sx)<object
|
|
|
(?:
|
|
|
- [^>]+?class=([\'"])[^>]*?BrightcoveExperience.*?\1 |
|
|
|
+ [^>]+?class=[\'"][^>]*?BrightcoveExperience.*?[\'"] |
|
|
|
[^>]*?>\s*<param\s+name="movie"\s+value="https?://[^/]*brightcove\.com/
|
|
|
).+?</object>''',
|
|
|
webpage)
|
|
|
- if m_brightcove is not None:
|
|
|
- return cls._build_brighcove_url(m_brightcove.group())
|
|
|
- else:
|
|
|
- return None
|
|
|
+ return [cls._build_brighcove_url(m) for m in matches]
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
url, smuggled_data = unsmuggle_url(url, {})
|