mirror of
https://github.com/l1ving/youtube-dl
synced 2024-12-23 11:12:52 +08:00
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')
|