|
|
@ -9,7 +9,18 @@ from ..utils import float_or_none |
|
|
|
|
|
|
|
class VGTVIE(InfoExtractor): |
|
|
|
IE_DESC = 'VGTV and BTTV' |
|
|
|
_VALID_URL = r'http://(?:www\.)?(?P<host>vgtv|bt)\.no/(?:(?:tv/)?#!/(?:video|live)/(?P<id>[0-9]+)|(?:[^/]+/)*(?P<path>[^/]+))' |
|
|
|
_VALID_URL = r'''(?x) |
|
|
|
(?: |
|
|
|
vgtv:| |
|
|
|
http://(?:www\.)? |
|
|
|
) |
|
|
|
(?P<host>vgtv|bt) |
|
|
|
(?: |
|
|
|
:| |
|
|
|
\.no/(?:tv/)?#!/(?:video|live)/ |
|
|
|
) |
|
|
|
(?P<id>[0-9]+) |
|
|
|
''' |
|
|
|
_TESTS = [ |
|
|
|
{ |
|
|
|
# streamType: vod |
|
|
@ -129,3 +140,29 @@ class VGTVIE(InfoExtractor): |
|
|
|
'view_count': data['displays'], |
|
|
|
'formats': formats, |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class BTArticleIE(InfoExtractor): |
|
|
|
IE_DESC = 'Bergens Tidende' |
|
|
|
_VALID_URL = 'http://(?:www\.)?bt\.no/(?:[^/]+/)+(?P<id>[^/]+)-\d+\.html' |
|
|
|
_TEST = { |
|
|
|
'url': 'http://www.bt.no/nyheter/lokalt/Kjemper-for-internatet-1788214.html', |
|
|
|
'md5': 'd055e8ee918ef2844745fcfd1a4175fb', |
|
|
|
'info_dict': { |
|
|
|
'id': '23199', |
|
|
|
'ext': 'mp4', |
|
|
|
'title': 'Alrekstad internat', |
|
|
|
'description': 'md5:dc81a9056c874fedb62fc48a300dac58', |
|
|
|
'thumbnail': 're:^https?://.*\.jpg', |
|
|
|
'duration': 191, |
|
|
|
'timestamp': 1289991323, |
|
|
|
'upload_date': '20101117', |
|
|
|
'view_count': int, |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
|
webpage = self._download_webpage(url, self._match_id(url)) |
|
|
|
video_id = self._search_regex( |
|
|
|
r'SVP\.Player\.load\(\s*(\d+)', webpage, 'video id') |
|
|
|
return self.url_result('vgtv:bt:%s' % video_id, 'VGTV') |