53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# 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')
							 |