diff options
author | Sergey M․ <dstftw@gmail.com> | 2017-07-09 15:55:04 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2017-07-09 15:55:04 +0700 |
commit | 5af2fd7fa02734c2a23f917fb60f1c14da149d3d (patch) | |
tree | 424f73fd6b7ea4199ed2f7d2e4bde77e322d0bfc | |
parent | 15237fcd51dca192103f08a910660616e3b241b8 (diff) |
[eagleplatform] Add support for another embed pattern (#13557)
-rw-r--r-- | youtube_dl/extractor/eagleplatform.py | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/youtube_dl/extractor/eagleplatform.py b/youtube_dl/extractor/eagleplatform.py index 76d39adac..5e1de04a1 100644 --- a/youtube_dl/extractor/eagleplatform.py +++ b/youtube_dl/extractor/eagleplatform.py @@ -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() |