import re from yt_dlp.extractor.common import InfoExtractor from yt_dlp.utils import ExtractorError class DzsecurityLiveIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?(echoroukonline\.com/live(?:-news)?|ennaharonline\.com/live(?:-news)?|elhayat\.dz/%D8%A7%D9%84%D8%A8%D8%AB-%D8%A7%D9%84%D8%AD%D9%8A)' _TESTS = [{ 'url': 'https://www.ennaharonline.com/live', 'info_dict': { 'id': 'ennahartv', 'title': r're:البث الحي لقناة النهار – النهار أونلاين', 'ext': 'mp4', 'live_status': 'is_live', }, 'skip': 'Geo-restricted to Algeria', }, { 'url': 'https://www.echoroukonline.com/live', 'info_dict': { 'id': 'echorouktv', 'title': r're:البث الحي لقناة الشروق تي في', 'ext': 'mp4', 'live_status': 'is_live', }, }, { 'url': 'https://www.echoroukonline.com/live-news', 'info_dict': { 'id': 'echorouknews', 'title': r're:البث الحي لقناة الشروق نيوز - آخر أخبار الجزائر', 'ext': 'mp4', 'live_status': 'is_live', }, }, { 'url': 'https://elhayat.dz/%D8%A7%D9%84%D8%A8%D8%AB-%D8%A7%D9%84%D8%AD%D9%8A', 'info_dict': { 'id': 'elhayattv', 'title': r're:البث الحي - الحياة', 'ext': 'mp4', 'live_status': 'is_live', }, }] def _real_extract(self, url): webpage = self._download_webpage(url, url) title_match = re.search(r'