]> jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/bellmedia.py
[ie/orf:on] Improve extraction (#9677)
[yt-dlp.git] / yt_dlp / extractor / bellmedia.py
1 from .common import InfoExtractor
2
3
4 class BellMediaIE(InfoExtractor):
5 _VALID_URL = r'''(?x)https?://(?:www\.)?
6 (?P<domain>
7 (?:
8 ctv|
9 tsn|
10 bnn(?:bloomberg)?|
11 thecomedynetwork|
12 discovery|
13 discoveryvelocity|
14 sciencechannel|
15 investigationdiscovery|
16 animalplanet|
17 bravo|
18 mtv|
19 space|
20 etalk|
21 marilyn
22 )\.ca|
23 (?:much|cp24)\.com
24 )/.*?(?:\b(?:vid(?:eoid)?|clipId)=|-vid|~|%7E|/(?:episode)?)(?P<id>[0-9]{6,})'''
25 _TESTS = [{
26 'url': 'https://www.bnnbloomberg.ca/video/david-cockfield-s-top-picks~1403070',
27 'md5': '3e5b8e38370741d5089da79161646635',
28 'info_dict': {
29 'id': '1403070',
30 'ext': 'flv',
31 'title': 'David Cockfield\'s Top Picks',
32 'description': 'md5:810f7f8c6a83ad5b48677c3f8e5bb2c3',
33 'upload_date': '20180525',
34 'timestamp': 1527288600,
35 'season_id': '73997',
36 'season': '2018',
37 'thumbnail': 'http://images2.9c9media.com/image_asset/2018_5_25_baf30cbd-b28d-4a18-9903-4bb8713b00f5_PNG_956x536.jpg',
38 'tags': [],
39 'categories': ['ETFs'],
40 'season_number': 8,
41 'duration': 272.038,
42 'series': 'Market Call Tonight',
43 },
44 }, {
45 'url': 'http://www.thecomedynetwork.ca/video/player?vid=923582',
46 'only_matching': True,
47 }, {
48 'url': 'http://www.tsn.ca/video/expectations-high-for-milos-raonic-at-us-open~939549',
49 'only_matching': True,
50 }, {
51 'url': 'http://www.bnn.ca/video/berman-s-call-part-two-viewer-questions~939654',
52 'only_matching': True,
53 }, {
54 'url': 'http://www.ctv.ca/YourMorning/Video/S1E6-Monday-August-29-2016-vid938009',
55 'only_matching': True,
56 }, {
57 'url': 'http://www.much.com/shows/atmidnight/episode948007/tuesday-september-13-2016',
58 'only_matching': True,
59 }, {
60 'url': 'http://www.much.com/shows/the-almost-impossible-gameshow/928979/episode-6',
61 'only_matching': True,
62 }, {
63 'url': 'http://www.ctv.ca/DCs-Legends-of-Tomorrow/Video/S2E11-Turncoat-vid1051430',
64 'only_matching': True,
65 }, {
66 'url': 'http://www.etalk.ca/video?videoid=663455',
67 'only_matching': True,
68 }, {
69 'url': 'https://www.cp24.com/video?clipId=1982548',
70 'only_matching': True,
71 }]
72 _DOMAINS = {
73 'thecomedynetwork': 'comedy',
74 'discoveryvelocity': 'discvel',
75 'sciencechannel': 'discsci',
76 'investigationdiscovery': 'invdisc',
77 'animalplanet': 'aniplan',
78 'etalk': 'ctv',
79 'bnnbloomberg': 'bnn',
80 'marilyn': 'ctv_marilyn',
81 }
82
83 def _real_extract(self, url):
84 domain, video_id = self._match_valid_url(url).groups()
85 domain = domain.split('.')[0]
86 return {
87 '_type': 'url_transparent',
88 'id': video_id,
89 'url': '9c9media:%s_web:%s' % (self._DOMAINS.get(domain, domain), video_id),
90 'ie_key': 'NineCNineMedia',
91 }