]> Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/parliamentliveuk.py
debian/control: Rerun wrap-and-sort.
[youtubedl] / youtube_dl / extractor / parliamentliveuk.py
1 from __future__ import unicode_literals
2
3 from .common import InfoExtractor
4
5
6 class ParliamentLiveUKIE(InfoExtractor):
7 IE_NAME = 'parliamentlive.tv'
8 IE_DESC = 'UK parliament videos'
9 _VALID_URL = r'(?i)https?://(?:www\.)?parliamentlive\.tv/Event/Index/(?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})'
10
11 _TESTS = [{
12 'url': 'http://parliamentlive.tv/Event/Index/c1e9d44d-fd6c-4263-b50f-97ed26cc998b',
13 'info_dict': {
14 'id': 'c1e9d44d-fd6c-4263-b50f-97ed26cc998b',
15 'ext': 'mp4',
16 'title': 'Home Affairs Committee',
17 'uploader_id': 'FFMPEG-01',
18 'timestamp': 1422696664,
19 'upload_date': '20150131',
20 },
21 }, {
22 'url': 'http://parliamentlive.tv/event/index/3f24936f-130f-40bf-9a5d-b3d6479da6a4',
23 'only_matching': True,
24 }]
25
26 def _real_extract(self, url):
27 video_id = self._match_id(url)
28 webpage = self._download_webpage(
29 'http://vodplayer.parliamentlive.tv/?mid=' + video_id, video_id)
30 widget_config = self._parse_json(self._search_regex(
31 r'kWidgetConfig\s*=\s*({.+});',
32 webpage, 'kaltura widget config'), video_id)
33 kaltura_url = 'kaltura:%s:%s' % (widget_config['wid'][1:], widget_config['entry_id'])
34 event_title = self._download_json(
35 'http://parliamentlive.tv/Event/GetShareVideo/' + video_id, video_id)['event']['title']
36 return {
37 '_type': 'url_transparent',
38 'id': video_id,
39 'title': event_title,
40 'description': '',
41 'url': kaltura_url,
42 'ie_key': 'Kaltura',
43 }