diff options
author | Sergey M․ <dstftw@gmail.com> | 2017-12-09 17:58:08 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2017-12-09 17:59:08 +0700 |
commit | a3de5e6c0e0efef4e8ff0cd37961c594b13c7fb9 (patch) | |
tree | 75b8c23c2a9ad1b69f1ec1cba131f588b367059a /youtube_dl/extractor | |
parent | f4cc03d60b5dd713fb8964cd9ecf8ca2b1a8a556 (diff) |
[stretchinternet] Fix issues and improve (closes #14576)
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r-- | youtube_dl/extractor/stretchinternet.py | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/youtube_dl/extractor/stretchinternet.py b/youtube_dl/extractor/stretchinternet.py index 9a0ec0e65..ae2ac1b42 100644 --- a/youtube_dl/extractor/stretchinternet.py +++ b/youtube_dl/extractor/stretchinternet.py @@ -1,28 +1,48 @@ -# coding: utf-8 from __future__ import unicode_literals from .common import InfoExtractor +from ..utils import int_or_none class StretchInternetIE(InfoExtractor): - IE_DESC = 'StretchInternet' - _VALID_URL = r'https?://.*?stretchinternet\.com/[^/_?].*(?<=eventId=)(?P<id>.*)(?=&).*' + _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': 'StretchInternet' + '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) - stream_url = stream.get('source') + + 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 { - 'ie_key': 'Generic', 'id': video_id, - 'url': 'http://%s' % stream_url, - 'title': 'StretchInternet' + 'title': title, + 'description': description, + 'timestamp': timestamp, + 'url': video_url, } |