[shahid] Add new extractor

pull/8/head
remitamine 2015-07-18 22:10:57 +01:00
rodzic e58066e244
commit 114ed20e64
2 zmienionych plików z 57 dodań i 0 usunięć

Wyświetl plik

@ -502,6 +502,7 @@ from .senateisvp import SenateISVPIE
from .servingsys import ServingSysIE
from .sexu import SexuIE
from .sexykarma import SexyKarmaIE
from .shahid import ShahidIE
from .shared import SharedIE
from .sharesix import ShareSixIE
from .sina import SinaIE

Wyświetl plik

@ -0,0 +1,56 @@
from .common import InfoExtractor
from ..utils import get_element_by_id
class ShahidIE(InfoExtractor):
_VALID_URL = r'https?://shahid\.mbc\.net/ar/episode/(?P<id>\d+)/?'
_TESTS = [
{
'url': 'https://shahid.mbc.net/ar/episode/108084/%D8%AE%D9%88%D8%A7%D8%B7%D8%B1-%D8%A7%D9%84%D9%85%D9%88%D8%B3%D9%85-11-%D8%A7%D9%84%D8%AD%D9%84%D9%82%D8%A9-1.html',
'info_dict': {
'id': '108084',
'ext': 'm3u8',
'title': 'بسم الله',
'description': 'بسم الله'
},
'params': {
# m3u8 download
'skip_download': True,
}
},
{
#shahid plus subscriber only
'url': 'https://shahid.mbc.net/ar/series/90497/%D9%85%D8%B1%D8%A7%D9%8A%D8%A7-2011.html',
'only_matching': True
}
]
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
json_data = self._parse_json(
get_element_by_id('jsonld', webpage),
video_id
)
title = json_data['name']
thumbnail = json_data['image']
categories = json_data['genre']
description = json_data['description']
player_json_data = self._download_json(
'https://shahid.mbc.net/arContent/getPlayerContent-param-.id-'+video_id+'.type-player.html',
video_id
)['data']
if 'url' in player_json_data:
m3u8_url = player_json_data['url']
else:
for error in json_data['error'].values():
self.report_warning(error)
return
formats = self._extract_m3u8_formats(m3u8_url, video_id)
return {
'id': video_id,
'title': title,
'thumbnail': thumbnail,
'categories': categories,
'description': description,
'formats': formats,
}