From f4cc03d60b5dd713fb8964cd9ecf8ca2b1a8a556 Mon Sep 17 00:00:00 2001 From: Andrew Bottom Date: Tue, 24 Oct 2017 11:50:02 -0500 Subject: [stretchinternet] Add extractor --- youtube_dl/extractor/stretchinternet.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 youtube_dl/extractor/stretchinternet.py (limited to 'youtube_dl/extractor/stretchinternet.py') diff --git a/youtube_dl/extractor/stretchinternet.py b/youtube_dl/extractor/stretchinternet.py new file mode 100644 index 000000000..9a0ec0e65 --- /dev/null +++ b/youtube_dl/extractor/stretchinternet.py @@ -0,0 +1,28 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class StretchInternetIE(InfoExtractor): + IE_DESC = 'StretchInternet' + _VALID_URL = r'https?://.*?stretchinternet\.com/[^/_?].*(?<=eventId=)(?P.*)(?=&).*' + _TEST = { + 'url': 'https://portal.stretchinternet.com/umary/portal.htm?eventId=313900&streamType=video', + 'info_dict': { + 'id': '313900', + 'ext': 'mp4', + 'title': 'StretchInternet' + } + } + + 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') + return { + 'ie_key': 'Generic', + 'id': video_id, + 'url': 'http://%s' % stream_url, + 'title': 'StretchInternet' + } -- cgit 1.4.1 From a3de5e6c0e0efef4e8ff0cd37961c594b13c7fb9 Mon Sep 17 00:00:00 2001 From: Sergey M․ Date: Sat, 9 Dec 2017 17:58:08 +0700 Subject: [stretchinternet] Fix issues and improve (closes #14576) --- youtube_dl/extractor/stretchinternet.py | 38 +++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'youtube_dl/extractor/stretchinternet.py') 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.*)(?=&).*' + _VALID_URL = r'https?://portal\.stretchinternet\.com/[^/]+/portal\.htm\?.*?\beventId=(?P\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, } -- cgit 1.4.1