diff --git a/youtube_dl/extractor/alaa.py b/youtube_dl/extractor/alaa.py new file mode 100644 index 000000000..27ad73d4e --- /dev/null +++ b/youtube_dl/extractor/alaa.py @@ -0,0 +1,52 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + +from ..utils import ( + int_or_none, + url_or_none, + parse_filesize, + parse_duration, +) + + +class AlaaIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?alaatv\.com/c/(?P[0-9]+)' + + _TEST = { + 'url': 'https://alaatv.com/c/19680', + 'info_dict': { + 'id': '19680', + 'ext': 'mp4', + 'title': 'مجموعه، الگو و دنباله (قسمت ششم)، تست های 48 الی 55', + 'thumbnail': 'https://nodes.alaatv.com/media/thumbnails/582/582070sevt.jpg', + 'duration': 1800 + } + } + + def _real_extract(self, url): + video_id = self._match_id(url) + + video_details = self._download_json('https://alaatv.com/api/v2/c/{0}'.format(video_id), video_id) + video_details = video_details['data'] + + video_image = video_details.get('photo') + + def map_formats(v): + return { + "url": v.get("link"), + "filesize": parse_filesize(v.get("size")), + "format_id": v.get("res"), + "ext": v.get("ext"), + } + + formats = list(map(map_formats, video_details['file']['video'])) + + return { + 'id': video_id, + 'title': video_details['title'], + 'formats': formats, + 'thumbnail': url_or_none(video_image), + 'duration': int_or_none(parse_duration(video_details.get('duration') + ":00")) + } diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 82221445f..451e20161 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -39,6 +39,7 @@ from .aenetworks import ( from .afreecatv import AfreecaTVIE from .airmozilla import AirMozillaIE from .aljazeera import AlJazeeraIE +from .alaa import AlaaIE from .alphaporno import AlphaPornoIE from .amara import AmaraIE from .amcnetworks import AMCNetworksIE