]>
Commit | Line | Data |
---|---|---|
1 | from __future__ import unicode_literals | |
2 | ||
3 | from .mtv import MTVServicesInfoExtractor | |
4 | ||
5 | ||
6 | class BellatorIE(MTVServicesInfoExtractor): | |
7 | _VALID_URL = r'https?://(?:www\.)?bellator\.com/[^/]+/[\da-z]{6}(?:[/?#&]|$)' | |
8 | _TESTS = [{ | |
9 | 'url': 'http://www.bellator.com/fight/atwr7k/bellator-158-michael-page-vs-evangelista-cyborg', | |
10 | 'info_dict': { | |
11 | 'title': 'Michael Page vs. Evangelista Cyborg', | |
12 | 'description': 'md5:0d917fc00ffd72dd92814963fc6cbb05', | |
13 | }, | |
14 | 'playlist_count': 3, | |
15 | }, { | |
16 | 'url': 'http://www.bellator.com/video-clips/bw6k7n/bellator-158-foundations-michael-venom-page', | |
17 | 'only_matching': True, | |
18 | }] | |
19 | ||
20 | _FEED_URL = 'http://www.bellator.com/feeds/mrss/' | |
21 | _GEO_COUNTRIES = ['US'] | |
22 | ||
23 | def _extract_mgid(self, webpage): | |
24 | return self._extract_triforce_mgid(webpage) | |
25 | ||
26 | ||
27 | class ParamountNetworkIE(MTVServicesInfoExtractor): | |
28 | _VALID_URL = r'https?://(?:www\.)?paramountnetwork\.com/[^/]+/[\da-z]{6}(?:[/?#&]|$)' | |
29 | _TESTS = [{ | |
30 | 'url': 'http://www.paramountnetwork.com/episodes/j830qm/lip-sync-battle-joel-mchale-vs-jim-rash-season-2-ep-13', | |
31 | 'info_dict': { | |
32 | 'id': '37ace3a8-1df6-48be-85b8-38df8229e241', | |
33 | 'ext': 'mp4', | |
34 | 'title': 'Lip Sync Battle|April 28, 2016|2|209|Joel McHale Vs. Jim Rash|Act 1', | |
35 | 'description': 'md5:a739ca8f978a7802f67f8016d27ce114', | |
36 | }, | |
37 | 'params': { | |
38 | # m3u8 download | |
39 | 'skip_download': True, | |
40 | }, | |
41 | }] | |
42 | ||
43 | _FEED_URL = 'http://www.paramountnetwork.com/feeds/mrss/' | |
44 | _GEO_COUNTRIES = ['US'] | |
45 | ||
46 | def _extract_mgid(self, webpage): | |
47 | root_data = self._parse_json(self._search_regex( | |
48 | r'window\.__DATA__\s*=\s*({.+})', | |
49 | webpage, 'data'), None) | |
50 | ||
51 | def find_sub_data(data, data_type): | |
52 | return next(c for c in data['children'] if c.get('type') == data_type) | |
53 | ||
54 | c = find_sub_data(find_sub_data(root_data, 'MainContainer'), 'VideoPlayer') | |
55 | return c['props']['media']['video']['config']['uri'] |