diff options
| -rw-r--r-- | youtube_dl/extractor/jwplatform.py | 59 | 
1 files changed, 32 insertions, 27 deletions
| diff --git a/youtube_dl/extractor/jwplatform.py b/youtube_dl/extractor/jwplatform.py index 8e90d5986..60a09044f 100644 --- a/youtube_dl/extractor/jwplatform.py +++ b/youtube_dl/extractor/jwplatform.py @@ -7,33 +7,9 @@ from .common import InfoExtractor  from ..utils import int_or_none -class JWPlatformIE(InfoExtractor): -    _VALID_URL = r'(?:https?://content\.jwplatform\.com/(?:feeds|players|jw6)/|jwplatform:)(?P<id>[a-zA-Z0-9]{8})' -    _TEST = { -        'url': 'http://content.jwplatform.com/players/nPripu9l-ALJ3XQCI.js', -        'md5': 'fa8899fa601eb7c83a64e9d568bdf325', -        'info_dict': { -            'id': 'nPripu9l', -            'ext': 'mov', -            'title': 'Big Buck Bunny Trailer', -            'description': 'Big Buck Bunny is a short animated film by the Blender Institute. It is made using free and open source software.', -            'upload_date': '20081127', -            'timestamp': 1227796140, -        } -    } - -    @staticmethod -    def _extract_url(webpage): -        mobj = re.search( -            r'<script[^>]+?src=["\'](?P<url>(?:https?:)?//content.jwplatform.com/players/[a-zA-Z0-9]{8})', -            webpage) -        if mobj: -            return mobj.group('url') - -    def _real_extract(self, url): -        video_id = self._match_id(url) -        json_data = self._download_json('http://content.jwplatform.com/feeds/%s.json' % video_id, video_id) -        video_data = json_data['playlist'][0] +class JWPlatformBaseIE(InfoExtractor): +    def _parse_jwplayer_data(self, jwplayer_data, video_id): +        video_data = jwplayer_data['playlist'][0]          subtitles = {}          for track in video_data['tracks']:              if track['kind'] == 'captions': @@ -68,3 +44,32 @@ class JWPlatformIE(InfoExtractor):              'subtitles': subtitles,              'formats': formats,          } + + +class JWPlatformIE(JWPlatformBaseIE): +    _VALID_URL = r'(?:https?://content\.jwplatform\.com/(?:feeds|players|jw6)/|jwplatform:)(?P<id>[a-zA-Z0-9]{8})' +    _TEST = { +        'url': 'http://content.jwplatform.com/players/nPripu9l-ALJ3XQCI.js', +        'md5': 'fa8899fa601eb7c83a64e9d568bdf325', +        'info_dict': { +            'id': 'nPripu9l', +            'ext': 'mov', +            'title': 'Big Buck Bunny Trailer', +            'description': 'Big Buck Bunny is a short animated film by the Blender Institute. It is made using free and open source software.', +            'upload_date': '20081127', +            'timestamp': 1227796140, +        } +    } + +    @staticmethod +    def _extract_url(webpage): +        mobj = re.search( +            r'<script[^>]+?src=["\'](?P<url>(?:https?:)?//content.jwplatform.com/players/[a-zA-Z0-9]{8})', +            webpage) +        if mobj: +            return mobj.group('url') + +    def _real_extract(self, url): +        video_id = self._match_id(url) +        json_data = self._download_json('http://content.jwplatform.com/feeds/%s.json' % video_id, video_id) +        return self._parse_jwplayer_data(json_data, video_id) | 
