def get_video_url(plugin, item_id, next_url, download_mode=False, **kwargs): resp = urlquick.get(next_url) id_diffusion = re.compile(r'data-factoryid\=\"(.*?)\"').findall( resp.text)[0] return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, download_mode)
def get_video_url(plugin, item_id, video_url, item_dict=None, download_mode=False, video_label=None): resp = urlquick.get(video_url) json_parser = json.loads(resp.text) method = None id_diffusion = '' urls = [] for media in json_parser['content']['medias']: if 'catchupId' in media: method = 'id_diffusion' id_diffusion = media['catchupId'] break elif 'streams' in media: method = 'stream_videos' for stream in media['streams']: urls.append((stream['format'], stream['url'])) break elif 'sourceUrl' in media: return media['sourceUrl'] if method == 'id_diffusion': return resolver_proxy.get_francetv_video_stream( plugin, id_diffusion, item_dict, download_mode, video_label) elif method == 'stream_videos': url_hd = '' url_default = '' for url in urls: if 'hd' in url[0]: url_hd = url[1] url_default = url[1] if DESIRED_QUALITY == "DIALOG": items = [] for url in urls: items.append(url[0]) seleted_item = xbmcgui.Dialog().select( plugin.localize(LABELS['choose_video_quality']), items) if seleted_item == -1: return False url_selected = items[seleted_item][1] if url_hd != '': url_selected = url_hd else: url_selected = url_default else: if url_hd != '': url_selected = url_hd else: url_selected = url_default if download_mode: return download.download_video(url_selected, video_label) return url_selected else: return False
def get_video_url( plugin, item_id, video_url, item_dict=None, download_mode=False, video_label=None): resp = urlquick.get(video_url) root = resp.parse() player_datas = root.find( ".//div[@class='player-wrapper']") if player_datas.find(".//a[@class='video_link']") is not None: id_diffusion = player_datas.find( ".//a[@class='video_link']").get( 'href').split('video/')[1].split('@')[0] return resolver_proxy.get_francetv_video_stream( plugin, id_diffusion, item_dict, download_mode, video_label) else: url_video_resolver = player_datas.find('.//iframe').get('src') # Case Youtube if 'youtube' in url_video_resolver: video_id = url_video_resolver.split( 'youtube.com/embed/')[1] return resolver_proxy.get_stream_youtube( plugin, video_id, download_mode, video_label) # Case DailyMotion elif 'dailymotion' in url_video_resolver: video_id = url_video_resolver.split( 'dailymotion.com/embed/video/')[1] return resolver_proxy.get_stream_dailymotion( plugin, video_id, download_mode, video_label) else: plugin.notify('ERROR', plugin.localize(30716)) return False
def get_video_url(plugin, item_id, id_diffusion, download_mode=False, **kwargs): return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, download_mode)
def get_video_url(plugin, item_id, id_diffusion, item_dict=None, download_mode=False, video_label=None): return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, item_dict, download_mode, video_label)
def get_video_url( plugin, item_id, video_data_contenu, item_dict, download_mode=False, video_label=None): resp = urlquick.get(URL_VIDEO_DATA_EDUCATION % video_data_contenu) id_diffusion = re.compile( r'videos.francetv.fr\/video\/(.*?)\@' ).findall(resp.text)[0] return resolver_proxy.get_francetv_video_stream( plugin, id_diffusion, item_dict, download_mode, video_label)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs): resp = urlquick.get(video_url) id_diffusion = '' list_id_diffusion = re.compile(r'data-video="(.*?)"').findall(resp.text) for id_diffusion_value in list_id_diffusion: id_diffusion = id_diffusion_value break return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, download_mode)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs): resp = urlquick.get(video_url, max_age=-1) if re.compile(r'videoId\"\:\"(.*?)\"').findall(resp.text): id_diffusion = re.compile(r'videoId\"\:\"(.*?)\"').findall( resp.text)[0] else: plugin.notify('ERROR', plugin.localize(30716)) return False return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, download_mode)
def get_video_url(plugin, broadcast_id=None, id_yatta=None, download_mode=False, **kwargs): if id_yatta is not None: url_yatta_video = "standard/publish/contents/%s" % id_yatta resp = urlquick.get(URL_API_FRONT(url_yatta_video), max_age=-1) json_parser = json.loads(resp.text) for medium in json_parser['content_has_medias']: if "si_id" in medium['media']: broadcast_id = medium['media']['si_id'] break return resolver_proxy.get_francetv_video_stream(plugin, broadcast_id, download_mode)
def get_video_url(plugin, item_id, video_url, item_dict=None, download_mode=False, video_label=None): resp = urlquick.get(video_url, max_age=-1) if re.compile(r'videos.francetv.fr\/video\/(.*?)\@').findall(resp.text): id_diffusion = re.compile( r'videos.francetv.fr\/video\/(.*?)\@').findall(resp.text)[0] else: plugin.notify('ERROR', plugin.localize(30716)) return False return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, item_dict, download_mode, video_label)
def get_video_url(plugin, item_id, id_diffusion=None, id_yatta=None, item_dict=None, download_mode=False, video_label=None): if id_yatta is not None: url_yatta_video = 'standard/publish/contents/%s' % id_yatta resp = urlquick.get(URL_API(url_yatta_video), max_age=-1) json_parser = json.loads(resp.text) for media in json_parser['content_has_medias']: if 'si_id' in media['media']: id_diffusion = media['media']['si_id'] break return resolver_proxy.get_francetv_video_stream(plugin, id_diffusion, item_dict, download_mode, video_label)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs): """Get video URL and start video player""" url_selected = '' all_datas_videos_quality = [] all_datas_videos_path = [] videos_html = urlquick.get(video_url) root = videos_html.parse() root_videos = videos_html.parse("ul", attrs={"class": "nav nav-tabs"}) for video in root_videos.iterfind(".//a"): if '#video-' in video.get('href'): # Find a better solution to strip if video.find('.//span') is not None: all_datas_videos_quality.append(video.text.strip() + ' ' + video.find('.//span').text) else: all_datas_videos_quality.append(video.text) # Get link value_jwplayer_id = video.get('data-jwplayer-id') # Case mp4 url = '' if value_jwplayer_id != '': for stream in root.iterfind(".//div[@class='jwplayer']"): if stream.get('id') == value_jwplayer_id: url = stream.get('data-source') # Cas Yt else: video_id = re.compile('youtube.com/embed/(.*?)\?').findall( videos_html.text)[0] url = resolver_proxy.get_stream_youtube( plugin, video_id, False) all_datas_videos_path.append(url + '|referer=%s' % video_url) # Get link from FranceTV elif '#ftv-player-' in video.get('href'): # Get link value_ftvlayer_id = video.get('data-ftvplayer-id') for stream in root.iterfind( ".//iframe[@class='embed-responsive-item']"): if stream.get('id') == value_ftvlayer_id: url_id = stream.get('src') id_embeded = url_id.split('akamaihd.net/')[1] json_value = urlquick.get(SHOW_INFO_FTV % id_embeded) json_value_parser = json.loads(json_value.text) id_diffusion = json_value_parser["video_id"] return resolver_proxy.get_francetv_video_stream( plugin, id_diffusion, download_mode=download_mode) final_url = '' if len(all_datas_videos_quality) > 1: seleted_item = xbmcgui.Dialog().select( plugin.localize(LABELS['choose_video_quality']), all_datas_videos_quality) if seleted_item == -1: return False url_selected = all_datas_videos_path[seleted_item] final_url = url_selected else: final_url = all_datas_videos_path[0] if download_mode: return download.download_video(final_url) return final_url
def get_live_url(plugin, item_id, video_id, item_dict, **kwargs): resp = urlquick.get(URL_LIVE_INFO % item_id, max_age=-1) broadcast_id = re.compile(r'videoId\"\:\"(.*?)\"').findall(resp.text)[0] return resolver_proxy.get_francetv_video_stream(plugin, broadcast_id, item_dict, False, None)
def get_video_url(plugin, item_id, video_url, item_dict=None, download_mode=False, video_label=None): """Get video URL and start video player""" url_selected = '' all_datas_videos_quality = [] all_datas_videos_path = [] videos_html = urlquick.get(video_url).text videos_soup = bs(videos_html, 'html.parser') list_videos = videos_soup.find('ul', class_='nav nav-tabs').find_all('a') for video in list_videos: if '#video-' in video.get('href'): # Find a better solution to strip all_datas_videos_quality.append(video.get_text().strip()) # Get link value_jwplayer_id = video.get('data-jwplayer-id') # Case mp4 if value_jwplayer_id != '': list_streams = videos_soup.find_all('div', class_='jwplayer') for stream in list_streams: if stream.get('id') == value_jwplayer_id: url = stream.get('data-source') # Cas Yt else: video_id = re.compile('youtube.com/embed/(.*?)\?').findall( videos_html)[0] url = resolver_proxy.get_stream_youtube( plugin, video_id, False) all_datas_videos_path.append(url + '|referer=%s' % video_url) # Get link from FranceTV elif '#ftv-player-' in video.get('href'): # Get link value_ftvlayer_id = video.get('data-ftvplayer-id') list_streams = videos_soup.find_all('iframe', class_='embed-responsive-item') for stream in list_streams: if stream.get('id') == value_ftvlayer_id: url_id = stream.get('src') id_embeded = url_id.split('akamaihd.net/')[1] json_value = urlquick.get(SHOW_INFO_FTV % id_embeded) json_value_parser = json.loads(json_value.text) id_diffusion = json_value_parser["video_id"] return resolver_proxy.get_francetv_video_stream( plugin, id_diffusion, item_dict, download_mode=download_mode) final_url = '' if len(all_datas_videos_quality) > 1: seleted_item = xbmcgui.Dialog().select( plugin.localize(LABELS['choose_video_quality']), all_datas_videos_quality) if seleted_item == -1: return False url_selected = all_datas_videos_path[seleted_item] final_url = url_selected else: final_url = all_datas_videos_path[0] if download_mode: return download.download_video(final_url, video_label) return final_url