diff options
| author | sprhawk <465558+sprhawk@users.noreply.github.com> | 2017-12-26 22:27:26 +0800 | 
|---|---|---|
| committer | sprhawk <465558+sprhawk@users.noreply.github.com> | 2017-12-26 22:27:26 +0800 | 
| commit | c33de004e13da11f1ae3cad7310b36500cfb9d28 (patch) | |
| tree | c742e448af6c126eca4b259c85f83177aec54847 /youtube_dl/extractor/stretchinternet.py | |
| parent | 42a1012c7767306626c5358a18ad3e86417bd7b7 (diff) | |
| parent | db145ee54a57f5ccc89639de8c589eb111a91b19 (diff) | |
Merge branch 'master' of github.com:rg3/youtube-dl into weibo
Diffstat (limited to 'youtube_dl/extractor/stretchinternet.py')
| -rw-r--r-- | youtube_dl/extractor/stretchinternet.py | 48 | 
1 files changed, 48 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/stretchinternet.py b/youtube_dl/extractor/stretchinternet.py new file mode 100644 index 000000000..ae2ac1b42 --- /dev/null +++ b/youtube_dl/extractor/stretchinternet.py @@ -0,0 +1,48 @@ +from __future__ import unicode_literals + +from .common import InfoExtractor +from ..utils import int_or_none + + +class StretchInternetIE(InfoExtractor): +    _VALID_URL = r'https?://portal\.stretchinternet\.com/[^/]+/portal\.htm\?.*?\beventId=(?P<id>\d+)' +    _TEST = { +        'url': 'https://portal.stretchinternet.com/umary/portal.htm?eventId=313900&streamType=video', +        'info_dict': { +            'id': '313900', +            'ext': 'mp4', +            'title': 'Augustana (S.D.) Baseball vs University of Mary', +            'description': 'md5:7578478614aae3bdd4a90f578f787438', +            'timestamp': 1490468400, +            'upload_date': '20170325', +        } +    } + +    def _real_extract(self, url): +        video_id = self._match_id(url) + +        stream = self._download_json( +            'https://neo-client.stretchinternet.com/streamservice/v1/media/stream/v%s' +            % video_id, video_id) + +        video_url = 'https://%s' % stream['source'] + +        event = self._download_json( +            'https://neo-client.stretchinternet.com/portal-ws/getEvent.json', +            video_id, query={ +                'clientID': 99997, +                'eventID': video_id, +                'token': 'asdf', +            })['event'] + +        title = event.get('title') or event['mobileTitle'] +        description = event.get('customText') +        timestamp = int_or_none(event.get('longtime')) + +        return { +            'id': video_id, +            'title': title, +            'description': description, +            'timestamp': timestamp, +            'url': video_url, +        } | 
