]> jfr.im git - yt-dlp.git/blame - youtube_dl/extractor/dcn.py
[dcn] Add new extractor
[yt-dlp.git] / youtube_dl / extractor / dcn.py
CommitLineData
3af1fac7 1from .common import InfoExtractor
2
3class DcnIE(InfoExtractor):
4 _VALID_URL = r'https?://(?:www\.)?dcndigital\.ae/(?:#/)?(?:video/.+|show/\d+/.+?)/(?P<id>\d+)/?'
5 _TEST = {
6 'url': 'http://www.dcndigital.ae/#/show/199074/%D8%B1%D8%AD%D9%84%D8%A9-%D8%A7%D9%84%D8%B9%D9%85%D8%B1-%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A9-1/17375/6887',
7 'info_dict':
8 {
9 'id': '17375',
10 'ext': 'm3u8',
11 'title': 'رحلة العمر : الحلقة 1',
12 'description': '"في هذه الحلقة من برنامج رحلة العمر يقدّم الدكتور عمر عبد الكافي تبسيطاً لمناسك الحج والعمرة ويجيب مباشرة على استفسارات حجاج بيت الله الحرام بخصوص مناسك الحج والعمرة1"',
13 'thumbnail': 'http://admin.mangomolo.com/analytics/uploads/71/images/media/2/2cefc09d7bec80afa754682f40e49503.jpg',
14 'duration': '2041'
15 }
16 }
17
18 def _real_extract(self, url):
19 video_id = self._match_id(url)
20 json_data = self._download_json(
21 'http://admin.mangomolo.com/analytics/index.php/plus/video?id='+video_id,
22 video_id
23 )
24 title = json_data['title_ar'];
25 thumbnail = 'http://admin.mangomolo.com/analytics/'+json_data['img'];
26 duration = json_data['duration'];
27 description = json_data['description_ar'];
28 webpage = self._download_webpage(
29 'http://admin.mangomolo.com/analytics/index.php/customers/embed/video?id='+json_data['id']+'&user_id='+json_data['user_id']+'&countries=Q0M=&w=100%&h=100%&filter=DENY&signature='+json_data['signature'],
30 video_id
31 )
32 m3u8_url = self._html_search_regex(
33 r'file: "(?P<m3u8_url>.*?)"',
34 webpage,
35 'm3u8_url',
36 group='m3u8_url'
37 )
38 formats = self._extract_m3u8_formats(m3u8_url, video_id)
39 return {
40 'id': video_id,
41 'title': title,
42 'thumbnail': thumbnail,
43 'duration': duration,
44 'description': description,
45 'formats': formats,
46 }