Browse Source

Merge branch 'dcn' of https://github.com/remitamine/youtube-dl into remitamine-dcn

master
Sergey M․ 9 years ago
parent
commit
89faae660f
2 changed files with 57 additions and 0 deletions
  1. 1
      youtube_dl/extractor/__init__.py
  2. 56
      youtube_dl/extractor/dcn.py

1
youtube_dl/extractor/__init__.py

@ -118,6 +118,7 @@ from .dailymotion import (
) )
from .daum import DaumIE from .daum import DaumIE
from .dbtv import DBTVIE from .dbtv import DBTVIE
from .dcn import DcnIE
from .dctp import DctpTvIE from .dctp import DctpTvIE
from .deezer import DeezerPlaylistIE from .deezer import DeezerPlaylistIE
from .dfb import DFBIE from .dfb import DFBIE

56
youtube_dl/extractor/dcn.py

@ -0,0 +1,56 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import compat_urllib_request
from ..utils import int_or_none
class DcnIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?dcndigital\.ae/(?:#/)?(?:video/.+|show/\d+/.+?)/(?P<id>\d+)/?'
_TEST = {
'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',
'info_dict':
{
'id': '17375',
'ext': 'm3u8',
'title': 'رحلة العمر : الحلقة 1',
'description': 'في هذه الحلقة من برنامج رحلة العمر يقدّم الدكتور عمر عبد الكافي تبسيطاً لمناسك الحج والعمرة ويجيب مباشرة على استفسارات حجاج بيت الله الحرام بخصوص مناسك الحج والعمرة\n1',
'thumbnail': 'http://admin.mangomolo.com/analytics/uploads/71/images/media/2/2cefc09d7bec80afa754682f40e49503.jpg',
'duration': 2041
},
'params': {
# m3u8 download
'skip_download': True,
},
}
def _real_extract(self, url):
video_id = self._match_id(url)
request = compat_urllib_request.Request(
'http://admin.mangomolo.com/analytics/index.php/plus/video?id=' + video_id,
headers={'Origin': 'http://www.dcndigital.ae'}
)
json_data = self._download_json(request, video_id)
title = json_data['title_ar']
thumbnail = 'http://admin.mangomolo.com/analytics/' + json_data.get('img')
duration = int_or_none(json_data.get('duration'))
description = json_data.get('description_ar')
webpage = self._download_webpage(
'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'],
video_id
)
m3u8_url = self._html_search_regex(
r'file:\s*"([^"]+)',
webpage,
'm3u8_url'
)
formats = self._extract_m3u8_formats(m3u8_url, video_id)
return {
'id': video_id,
'title': title,
'thumbnail': thumbnail,
'duration': duration,
'description': description,
'formats': formats,
}
Loading…
Cancel
Save