youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit a3de5e6c0e0efef4e8ff0cd37961c594b13c7fb9
parent f4cc03d60b5dd713fb8964cd9ecf8ca2b1a8a556
Author: Sergey M․ <dstftw@gmail.com>
Date:   Sat,  9 Dec 2017 17:58:08 +0700

[stretchinternet] Fix issues and improve (closes #14576)

Diffstat:
Myoutube_dl/extractor/stretchinternet.py | 38+++++++++++++++++++++++++++++---------
1 file changed, 29 insertions(+), 9 deletions(-)

diff --git 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, }