|
@@ -0,0 +1,52 @@
|
|
|
|
+# coding: utf-8
|
|
|
|
+from __future__ import unicode_literals
|
|
|
|
+
|
|
|
|
+from .adobepass import AdobePassIE
|
|
|
|
+from ..utils import (
|
|
|
|
+ extract_attributes,
|
|
|
|
+ update_url_query,
|
|
|
|
+ smuggle_url,
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class SproutIE(AdobePassIE):
|
|
|
|
+ _VALID_URL = r'https?://(?:www\.)?sproutonline\.com/watch/(?P<id>[^/?#]+)'
|
|
|
|
+ _TEST = {
|
|
|
|
+ 'url': 'http://www.sproutonline.com/watch/cowboy-adventure',
|
|
|
|
+ 'md5': '74bf14128578d1e040c3ebc82088f45f',
|
|
|
|
+ 'info_dict': {
|
|
|
|
+ 'id': '9dexnwtmh8_X',
|
|
|
|
+ 'ext': 'mp4',
|
|
|
|
+ 'title': 'A Cowboy Adventure',
|
|
|
|
+ 'description': 'Ruff-Ruff, Tweet and Dave get to be cowboys for the day at Six Cow Corral.',
|
|
|
|
+ 'timestamp': 1437758640,
|
|
|
|
+ 'upload_date': '20150724',
|
|
|
|
+ 'uploader': 'NBCU-SPROUT-NEW',
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ def _real_extract(self, url):
|
|
|
|
+ video_id = self._match_id(url)
|
|
|
|
+ webpage = self._download_webpage(url, video_id)
|
|
|
|
+ video_component = self._search_regex(
|
|
|
|
+ r'(?s)(<div[^>]+data-component="video"[^>]*?>)',
|
|
|
|
+ webpage, 'video component', default=None)
|
|
|
|
+ if video_component:
|
|
|
|
+ options = self._parse_json(extract_attributes(
|
|
|
|
+ video_component)['data-options'], video_id)
|
|
|
|
+ theplatform_url = options['video']
|
|
|
|
+ query = {
|
|
|
|
+ 'mbr': 'true',
|
|
|
|
+ 'manifest': 'm3u',
|
|
|
|
+ }
|
|
|
|
+ if options.get('protected'):
|
|
|
|
+ query['auth'] = self._extract_mvpd_auth(url, options['pid'], 'sprout', 'sprout')
|
|
|
|
+ theplatform_url = smuggle_url(update_url_query(
|
|
|
|
+ theplatform_url, query), {'force_smil_url': True})
|
|
|
|
+ else:
|
|
|
|
+ iframe = self._search_regex(
|
|
|
|
+ r'(<iframe[^>]+id="sproutVideoIframe"[^>]*?>)',
|
|
|
|
+ webpage, 'iframe')
|
|
|
|
+ theplatform_url = extract_attributes(iframe)['src']
|
|
|
|
+
|
|
|
|
+ return self.url_result(theplatform_url, 'ThePlatform')
|