# coding: utf-8 from __future__ import unicode_literals import re from .common import InfoExtractor import os from ..utils import ( js_to_json, urljoin, ) class ReshetIE(InfoExtractor): _VALID_URL = r'https?://13tv\.co\.il/(?:(?:item/)?[^/]+/[^/]+/[^/]+/[^/]+(?:/(?P[^/]+))?/?|live/?)' _TEST = { 'url': 'https://13tv.co.il/item/entertainment/gav-hauma/season-10/episodes/jz1a1-1028855', 'note': 'Test URL extraction', 'info_dict': { 'id': '6015811232001', 'ext': 'mp4', 'timestamp': 1553031049, 'title': 'entertainment-gav-hauma-season-10-episodes-10-full_au8bmF8M', 'uploader_id': '1551111274001', 'upload_date': '20190319', } } def _real_extract(self, url): if re.search('live/?$', url): reshet_id = 'live' else: reshet_id = self._match_id(url) page = self._download_webpage(url, reshet_id) data = self._parse_json(re.search(r'window.data_query = (.*?).data_query;\n', page).group(1), reshet_id) liveId = data.get('header', {}).get('Live', {}).get('videoId') curItem = data.get('curItem') if liveId is None and curItem is None: # create a playlist result entries = [] for item in data['items'].values(): if item.get('video') is None: continue entries.append(self.url_result(item['link'], video_id=item['post_ID'], video_title=item['title'])) return self.playlist_result(entries) main_js_url = urljoin(url, re.search(r'