|
@@ -60,16 +60,40 @@ class EaglePlatformIE(InfoExtractor):
|
|
|
webpage)
|
|
|
if mobj is not None:
|
|
|
return mobj.group('url')
|
|
|
- # Basic usage embedding (see http://dultonmedia.github.io/eplayer/)
|
|
|
+ PLAYER_JS_RE = r'''
|
|
|
+ <script[^>]+
|
|
|
+ src=(?P<qjs>["\'])(?:https?:)?//(?P<host>(?:(?!(?P=qjs)).)+\.media\.eagleplatform\.com)/player/player\.js(?P=qjs)
|
|
|
+ .+?
|
|
|
+ '''
|
|
|
+ # "Basic usage" embedding (see http://dultonmedia.github.io/eplayer/)
|
|
|
mobj = re.search(
|
|
|
r'''(?xs)
|
|
|
- <script[^>]+
|
|
|
- src=(?P<q1>["\'])(?:https?:)?//(?P<host>.+?\.media\.eagleplatform\.com)/player/player\.js(?P=q1)
|
|
|
- .+?
|
|
|
+ %s
|
|
|
<div[^>]+
|
|
|
- class=(?P<q2>["\'])eagleplayer(?P=q2)[^>]+
|
|
|
+ class=(?P<qclass>["\'])eagleplayer(?P=qclass)[^>]+
|
|
|
data-id=["\'](?P<id>\d+)
|
|
|
- ''', webpage)
|
|
|
+ ''' % PLAYER_JS_RE, webpage)
|
|
|
+ if mobj is not None:
|
|
|
+ return 'eagleplatform:%(host)s:%(id)s' % mobj.groupdict()
|
|
|
+ # Generalization of "Javascript code usage", "Combined usage" and
|
|
|
+ # "Usage without attaching to DOM" embeddings (see
|
|
|
+ # http://dultonmedia.github.io/eplayer/)
|
|
|
+ mobj = re.search(
|
|
|
+ r'''(?xs)
|
|
|
+ %s
|
|
|
+ <script>
|
|
|
+ .+?
|
|
|
+ new\s+EaglePlayer\(
|
|
|
+ (?:[^,]+\s*,\s*)?
|
|
|
+ {
|
|
|
+ .+?
|
|
|
+ \bid\s*:\s*["\']?(?P<id>\d+)
|
|
|
+ .+?
|
|
|
+ }
|
|
|
+ \s*\)
|
|
|
+ .+?
|
|
|
+ </script>
|
|
|
+ ''' % PLAYER_JS_RE, webpage)
|
|
|
if mobj is not None:
|
|
|
return 'eagleplatform:%(host)s:%(id)s' % mobj.groupdict()
|
|
|
|