[laola1tv] Add support for livestreams (Closes #8934)

This commit is contained in:
Sergey M․ 2016-03-22 22:32:59 +06:00
parent cc7397b04d
commit 2beeb286e1
1 changed files with 26 additions and 5 deletions

View File

@ -19,7 +19,7 @@ from ..utils import (
class Laola1TvIE(InfoExtractor): class Laola1TvIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?laola1\.tv/(?P<lang>[a-z]+)-(?P<portal>[a-z]+)/[^/]+/(?P<slug>[^/?#&]+)' _VALID_URL = r'https?://(?:www\.)?laola1\.tv/(?P<lang>[a-z]+)-(?P<portal>[a-z]+)/(?P<kind>[^/]+)/(?P<slug>[^/?#&]+)'
_TESTS = [{ _TESTS = [{
'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie/227883.html', 'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie/227883.html',
'info_dict': { 'info_dict': {
@ -33,7 +33,7 @@ class Laola1TvIE(InfoExtractor):
}, },
'params': { 'params': {
'skip_download': True, 'skip_download': True,
} },
}, { }, {
'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie', 'url': 'http://www.laola1.tv/de-de/video/straubing-tigers-koelner-haie',
'info_dict': { 'info_dict': {
@ -47,12 +47,28 @@ class Laola1TvIE(InfoExtractor):
}, },
'params': { 'params': {
'skip_download': True, 'skip_download': True,
} },
}, {
'url': 'http://www.laola1.tv/de-de/livestream/2016-03-22-belogorie-belgorod-trentino-diatec-lde',
'info_dict': {
'id': '487850',
'display_id': '2016-03-22-belogorie-belgorod-trentino-diatec-lde',
'ext': 'flv',
'title': 'Belogorie BELGOROD - TRENTINO Diatec',
'upload_date': '20160322',
'uploader': 'CEV - Europäischer Volleyball Verband',
'is_live': True,
'categories': ['Volleyball'],
},
'params': {
'skip_download': True,
},
}] }]
def _real_extract(self, url): def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url) mobj = re.match(self._VALID_URL, url)
display_id = mobj.group('slug') display_id = mobj.group('slug')
kind = mobj.group('kind')
lang = mobj.group('lang') lang = mobj.group('lang')
portal = mobj.group('portal') portal = mobj.group('portal')
@ -85,12 +101,17 @@ class Laola1TvIE(InfoExtractor):
_v = lambda x, **k: xpath_text(hd_doc, './/video/' + x, **k) _v = lambda x, **k: xpath_text(hd_doc, './/video/' + x, **k)
title = _v('title', fatal=True) title = _v('title', fatal=True)
VS_TARGETS = {
'video': '2',
'livestream': '17',
}
req = sanitized_Request( req = sanitized_Request(
'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access?%s' % 'https://club.laola1.tv/sp/laola1/api/v3/user/session/premium/player/stream-access?%s' %
compat_urllib_parse.urlencode({ compat_urllib_parse.urlencode({
'videoId': video_id, 'videoId': video_id,
'target': '2', 'target': VS_TARGETS.get(kind, '2'),
'label': 'laola1tv', 'label': _v('label'),
'area': _v('area'), 'area': _v('area'),
}), }),
urlencode_postdata( urlencode_postdata(