Ejemplo n.º 1
0
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
Ejemplo n.º 4
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 10
0
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