|
@@ -14,6 +14,7 @@ from ..utils import (
|
|
|
compat_str,
|
|
|
compat_urllib_request,
|
|
|
compat_parse_qs,
|
|
|
+ compat_urllib_parse_urlparse,
|
|
|
|
|
|
determine_ext,
|
|
|
ExtractorError,
|
|
@@ -263,10 +264,16 @@ class BrightcoveIE(InfoExtractor):
|
|
|
if not url:
|
|
|
continue
|
|
|
if rend['remote']:
|
|
|
- # This type of renditions are served through akamaihd.net,
|
|
|
- # but they don't use f4m manifests
|
|
|
- url = url.replace('control/', '') + '?&v=3.3.0&fp=13&r=FEEFJ&g=RTSJIMBMPFPB'
|
|
|
- ext = 'flv'
|
|
|
+ url_comp = compat_urllib_parse_urlparse(url)
|
|
|
+ if url_comp.path.endswith('.m3u8'):
|
|
|
+ formats.extend(
|
|
|
+ self._extract_m3u8_formats(url, info['id'], 'mp4'))
|
|
|
+ continue
|
|
|
+ elif 'akamaihd.net' in url_comp.netloc:
|
|
|
+ # This type of renditions are served through
|
|
|
+ # akamaihd.net, but they don't use f4m manifests
|
|
|
+ url = url.replace('control/', '') + '?&v=3.3.0&fp=13&r=FEEFJ&g=RTSJIMBMPFPB'
|
|
|
+ ext = 'flv'
|
|
|
else:
|
|
|
ext = determine_ext(url)
|
|
|
size = rend.get('size')
|