Exemple #1
0
def get_live_url(plugin, item_id, **kwargs):
    final_language = kwargs.get('language', DESIRED_LANGUAGE)

    if final_language == 'EN':
        url_live = URL_LIVE_EN
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, False)
    elif final_language == 'AR':
        url_live = URL_LIVE_AR
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, False)
    elif final_language == 'FR':
        url_live = URL_LIVE_FR
        resp = urlquick.get(url_live, max_age=-1)
        return re.compile(r'file\: \"(.*?)\"').findall(resp.text)[0]
    elif final_language == 'ES':
        url_live = URL_LIVE_ES
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, False)
Exemple #2
0
def get_live_url(plugin, item_id, video_id, item_dict, **kwargs):

    final_language = DESIRED_LANGUAGE

    # If we come from the M3U file and the language
    # is set in the M3U URL, then we overwrite
    # Catch Up TV & More language setting
    if type(item_dict) is not dict:
        item_dict = eval(item_dict)
    if 'language' in item_dict:
        final_language = item_dict['language']

    if final_language == 'EN':
        url_live = URL_LIVE_EN
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, False)
    elif final_language == 'AR':
        url_live = URL_LIVE_AR
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, False)
    elif final_language == 'FR':
        url_live = URL_LIVE_FR
        resp = urlquick.get(url_live, max_age=-1)
        return re.compile(r'file\: \"(.*?)\"').findall(resp.text)[0]
    elif final_language == 'ES':
        url_live = URL_LIVE_ES
        resp = urlquick.get(url_live, max_age=-1)
        live_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, live_id, 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
Exemple #4
0
def get_live_url(plugin, item_id, video_id, item_dict, **kwargs):

    resp = urlquick.get(URL_LIVE_JSON,
                        headers={'User-Agent': web_utils.get_random_ua},
                        max_age=-1)
    json_parser = json.loads(resp.text)
    return resolver_proxy.get_stream_youtube(plugin, json_parser["code"])
def get_video_url(plugin, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url,
                        headers={'User-Agent': web_utils.get_random_ua()},
                        max_age=-1)
    video_id = re.compile(r'videoId: \'(.*?)\'').findall(resp.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
Exemple #6
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  download_mode=False,
                  video_label=None):

    resp = urlquick.get(URL_VIDEO_BY_ID % video_id, max_age=-1)
    json_parser = json.loads(
        re.compile('data-media=\"(.*?)\"').findall(resp.text)[0].replace(
            '"', '"'))

    if json_parser["urlHls"] is None:
        if 'youtube.com' in json_parser["url"]:
            video_id = json_parser["url"].rsplit('/', 1)[1]
            return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                     download_mode,
                                                     video_label)
        else:
            return json_parser["url"]
    else:
        stream_url = json_parser["urlHls"]
        if 'drm' in stream_url:
            stream_url = json_parser["urlHlsAes128"]

    if download_mode:
        return download.download_video(stream_url, video_label)
    return stream_url
Exemple #7
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):
    """Get video URL and start video player"""
    video_html = urlquick.get(video_url).text
    video_id = re.compile(r'www.youtube.com/embed/(.*?)\?').findall(
        video_html)[0]

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  video_label=None):

    resp = urlquick.get(video_url)
    root_soup = bs(resp.text, 'html.parser')
    stream_datas = root_soup.find('iframe').get('src')

    # Case Youtube
    if 'youtube' in stream_datas:
        video_id = re.compile('www.youtube.com/embed/(.*?)[\?\"\&]').findall(
            stream_datas)[0]
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode, video_label)
    # Case Vimeo
    elif 'vimeo' in stream_datas:
        video_id = re.compile('player.vimeo.com/video/(.*?)[\?\"]').findall(
            stream_datas)[0]
        return resolver_proxy.get_stream_vimeo(plugin, video_id, download_mode,
                                               video_label)
    else:
        # Add Notification
        return False
Exemple #9
0
def get_live_url(plugin, item_id, video_id, **kwargs):

    resp = urlquick.get(URL_ROOT,
                        headers={"User-Agent": web_utils.get_random_ua()},
                        max_age=-1)
    live_id = re.compile("youtube.com/embed/(.*?)\"").findall(resp.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, live_id, False)
Exemple #10
0
def get_video_yt_url(plugin,
                     item_id,
                     video_id,
                     download_mode=False,
                     **kwargs):

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
Exemple #11
0
def get_video_url(plugin,
                  item_id,
                  youtube_id,
                  download_mode=False,
                  video_label=None):
    return resolver_proxy.get_stream_youtube(plugin, youtube_id, download_mode,
                                             video_label)
Exemple #12
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)
    video_id = re.compile(r'youtube\.com\/embed\/(.*.)\?').findall(
        resp.text)[0]

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
def get_live_url(plugin, item_id, video_id, item_dict):

    resp = urlquick.get(URL_ROOT)
    root = resp.parse()
    live_datas = root.find('.//iframe')
    resp2 = urlquick.get(live_datas.get('src'))
    live_id = re.compile(r'www.youtube.com\/watch\?v=(.*?)\"').findall(
        resp2.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, live_id, False)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):
    """Get video URL and start video player"""

    resp = urlquick.get(video_url, max_age=-1)
    root = resp.parse()

    if root.find(".//figure[@class='player player-auto-play js-player']"
                 ) is not None:
        stream_datas_json = root.find(
            ".//figure[@class='player player-auto-play js-player']").get(
                'data-model')
        json_parser = json.loads(stream_datas_json)

        if 'high' in json_parser["videos"][0]["sources"]:
            return 'https:' + json_parser["videos"][0]["sources"]["high"]
        else:
            return json_parser["videos"][0]["sources"]["standard"]
    elif root.find(".//div[@class='more-overlay-item social-export light']"
                   ) is not None:
        stream_datas_json = root.find(
            ".//div[@class='more-overlay-item social-export light']").get(
                'data-model')
        print(repr(stream_datas_json))
        json_parser = json.loads(stream_datas_json)
        if 'code' in json_parser["videos"][0]["sources"]:
            url_video_resolver = json_parser["videos"][0]["sources"]["code"]
            if 'youtube' in url_video_resolver:
                video_id = re.compile(r'www.youtube.com/embed/(.*?)[\?\"\&]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_youtube(
                    plugin, video_id, download_mode)

            # Case DailyMotion
            elif 'dailymotion' in url_video_resolver:
                video_id = re.compile(r'embed/video/(.*?)[\"\?]').findall(
                    url_video_resolver)[0]
                return resolver_proxy.get_stream_dailymotion(
                    plugin, video_id, download_mode)

            # Case Facebook
            elif 'facebook' in url_video_resolver:
                video_id = re.compile(
                    r'www.facebook.com/allocine/videos/(.*?)/').findall(
                        url_video_resolver)[0]
                return resolver_proxy.get_stream_facebook(
                    plugin, video_id, download_mode)

            # Case Vimeo
            elif 'vimeo' in url_video_resolver:
                video_id = re.compile(r'player.vimeo.com/video/(.*?)[\?\"]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_vimeo(plugin, video_id,
                                                       download_mode)

        # TO DO ? (return an error)
        else:
            return False
def get_live_url(plugin, item_id, video_id, item_dict):

    resp = urlquick.get(URL_ROOT)
    root_soup = bs(resp.text, 'html.parser')
    live_datas = root_soup.find('iframe')
    live_html = urlquick.get(live_datas.get('src'))
    live_id = re.compile(
        r'www.youtube.com\/watch\?v=(.*?)\"').findall(live_html.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, live_id, False)
Exemple #16
0
def get_video_url(plugin, video_url, download_mode=False, video_label=None):

    resp = urlquick.get(video_url,
                        headers={'User-Agent': web_utils.get_random_ua},
                        max_age=-1)
    video_id = re.compile(r'www.youtube.com/embed/(.*?)[\?\"]').findall(
        resp.text)[0]

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode,
                                             video_label)
Exemple #17
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  is_youtube,
                  download_mode=False,
                  **kwargs):

    if is_youtube:
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode)
    return resolver_proxy.get_stream_vimeo(plugin, video_id, download_mode)
def get_video_url(plugin,
                  video_url,
                  item_id,
                  download_mode=False,
                  video_label=None,
                  **kwargs):
    """Get video URL and start video player"""
    video_html = urlquick.get(video_url).text
    video_id = re.compile(r'videoID\=\"(.*?)\"').findall(video_html)[0]

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode,
                                             video_label)
def get_video_url(plugin,
                  item_id,
                  video_id,
                  video_source,
                  download_mode=False,
                  **kwargs):

    if 'youtube' in video_source:
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode)
    elif 'dailymotion' in video_source:
        return resolver_proxy.get_stream_dailymotion(plugin, video_id,
                                                     download_mode)
def get_video_url(plugin,
                  item_id,
                  video_id,
                  is_youtube,
                  download_mode=False,
                  video_label=None):

    if is_youtube:
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode, video_label)
    else:
        return resolver_proxy.get_stream_vimeo(plugin, video_id, download_mode,
                                               video_label)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):
    """Get video URL and start video player"""

    video_html = urlquick.get(video_url).text
    if re.compile('AtedraVideo.video_id = "(.*?)"').findall(video_html):
        video_id = re.compile('AtedraVideo.video_id = "(.*?)"').findall(
            video_html)[0]

    else:
        # TO DO Espagnol Video / Return 404 (TO REMOVE)
        return False

    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
Exemple #22
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  video_id,
                  is_drm,
                  download_mode=False,
                  **kwargs):
    if 'youtube.com' in video_url:
        video_id = video_url.rsplit('/', 1)[1]
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode)

    if 'arte.tv' in video_url:
        video_id = re.compile("(?<=fr%2F)(.*)(?=&autostart)").findall(
            video_url)[0]
        return resolver_proxy.get_arte_video_stream(plugin, 'fr', video_id,
                                                    download_mode)

    if is_drm:
        if get_kodi_version() < 18:
            xbmcgui.Dialog().ok('Info', plugin.localize(30602))
            return False

        is_helper = inputstreamhelper.Helper('mpd', drm='widevine')
        if not is_helper.check_inputstream():
            return False

        token_url = URL_TOKEN % ('media_id', video_id, PARTNER_KEY)
        token_value = urlquick.get(token_url, max_age=-1)
        json_parser_token = json.loads(token_value.text)

        item = Listitem()
        item.path = video_url
        item.property[INPUTSTREAM_PROP] = 'inputstream.adaptive'
        item.property['inputstream.adaptive.manifest_type'] = 'mpd'
        item.property[
            'inputstream.adaptive.license_type'] = 'com.widevine.alpha'
        headers2 = {
            'customdata': json_parser_token["auth_encoded_xml"],
        }
        item.property[
            'inputstream.adaptive.license_key'] = URL_LICENCE_KEY % urlencode(
                headers2)
        item.property[
            'inputstream.adaptive.manifest_update_parameter'] = 'full'
        item.label = get_selected_item_label()
        item.art.update(get_selected_item_art())
        item.info.update(get_selected_item_info())
        return item

    return video_url
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)

    if len(re.compile(r'source src\=\"(.*?)\"').findall(resp.text)) > 0:
        stream_url = re.compile(r'source src\=\"(.*?)\"').findall(resp.text)[0]

        if download_mode:
            return download.download_video(stream_url)
        return stream_url

    video_id = re.compile(r'www.youtube.com\/embed\/(.*?)\"').findall(
        resp.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, video_id, download_mode)
Exemple #24
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url, max_age=-1)
    if 'youtube.com/embed' in resp.text:
        video_id = re.compile(r'youtube\.com\/embed\/(.*?)[\?\"]').findall(
            resp.text)[0]
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode)
    else:
        final_url = re.compile(r'file\: \"(.*?)\"').findall(resp.text)
        if download_mode:
            return download.download_video(final_url)

        return final_url
Exemple #25
0
def get_live_url(plugin, item_id, **kwargs):
    final_language = kwargs.get('language',
                                Script.setting['euronews.language'])

    if final_language == 'EN':
        url_live_json = URL_LIVE_API % 'www'
    elif final_language == 'AR':
        url_live_json = URL_LIVE_API % 'arabic'
    else:
        url_live_json = URL_LIVE_API % final_language.lower()

    resp = urlquick.get(url_live_json,
                        headers={'User-Agent': web_utils.get_random_ua()},
                        max_age=-1)
    json_parser = json.loads(resp.text)
    return resolver_proxy.get_stream_youtube(plugin, json_parser['videoId'],
                                             False)
Exemple #26
0
def get_video_url_news_videos(plugin,
                              item_id,
                              video_url,
                              download_mode=False,
                              video_label=None,
                              **kwargs):

    resp = urlquick.get(video_url)
    root = resp.parse()
    url_video_resolver = root.find(".//iframe[@class='js-frame-lazed']").get(
        'data-url')

    # print 'url_video_resolver value : ' + url_video_resolver

    # Case Youtube
    if 'youtube' in url_video_resolver:
        video_id = re.compile(r'www.youtube.com/embed/(.*?)$').findall(
            url_video_resolver)[0]
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode, video_label)

    # Case DailyMotion
    elif 'dailymotion' in url_video_resolver:
        video_id = re.compile(r'embed/video/(.*?)$').findall(
            url_video_resolver)[0]
        return resolver_proxy.get_stream_dailymotion(plugin, video_id,
                                                     download_mode,
                                                     video_label)

    # Case Facebook
    elif 'facebook' in url_video_resolver:
        video_id = re.compile('www.facebook.com/allocine/videos/(.*?)/'
                              ).findall(url_video_resolver)[0]
        # print 'video_id facebook ' + video_id
        return resolver_proxy.get_stream_facebook(plugin, video_id,
                                                  download_mode, video_label)

    # Case Vimeo
    elif 'vimeo' in url_video_resolver:
        video_id = re.compile(r'player.vimeo.com/video/(.*?)$').findall(
            url_video_resolver)[0]
        return resolver_proxy.get_stream_vimeo(plugin, video_id, download_mode,
                                               video_label)
    # TO DO ? (return an error)
    else:
        return False
Exemple #27
0
def get_live_url(plugin, item_id, video_id, **kwargs):

    resp = urlquick.get(URL_ROOT % item_id)
    root = resp.parse()

    if root.find(".//section[@id='block-block-2']") is not None:
        live_url = root.find(".//section[@id='block-block-2']").findall(
            './/a')[0].get('href')
    else:
        live_url = root.find(".//section[@id='block-block-4']").findall(
            './/a')[0].get('href')
    live_html = urlquick.get(live_url)
    live_id_channel = re.compile('www.youtube.com/embed/(.*?)\"').findall(
        live_html.text)[1]
    live_youtube_html = urlquick.get('https://www.youtube.com/embed/' +
                                     live_id_channel)
    live_id = re.compile('\'VIDEO_ID\'\: \"(.*?)\"').findall(
        live_youtube_html.text)[0]
    return resolver_proxy.get_stream_youtube(plugin, live_id, False)
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)
    root = resp.parse()
    stream_datas = root.find('.//iframe').get('src')

    # Case Youtube
    if 'youtube' in stream_datas:
        video_id = re.compile('www.youtube.com/embed/(.*?)[\?\"\&]').findall(
            stream_datas)[0]
        return resolver_proxy.get_stream_youtube(plugin, video_id,
                                                 download_mode)
    # Case Vimeo
    elif 'vimeo' in stream_datas:
        video_id = re.compile('player.vimeo.com/video/(.*?)[\?\"]').findall(
            stream_datas)[0]
        return resolver_proxy.get_stream_vimeo(plugin, video_id, download_mode)
    else:
        # Add Notification
        return False
Exemple #29
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  download_mode=False,
                  video_label=None):
    """Get video URL and start video player"""

    video_json = urlquick.get(URL_API_MEDIA % (video_id, PARTNER)).text
    video_json_parser = json.loads(video_json)
    # print(repr(video_json_parser))
    desired_quality = Script.setting.get_string('quality')

    if 'media' not in video_json_parser:
        return False

    final_url = ''
    if 'rendition' in video_json_parser["media"]:
        # (Video Hosted By Allocine)
        if desired_quality == "DIALOG":
            all_datas_videos_quality = []
            all_datas_videos_path = []
            for media in video_json_parser["media"]["rendition"]:
                all_datas_videos_quality.append(media["bandwidth"]["$"])
                all_datas_videos_path.append(media["href"])
            seleted_item = xbmcgui.Dialog().select(
                plugin.localize(LABELS['choose_video_quality']),
                all_datas_videos_quality)
            if seleted_item == -1:
                return False
            final_url = all_datas_videos_path[seleted_item]
        elif desired_quality == "BEST":
            for media in video_json_parser["media"]["rendition"]:
                final_url = media["href"]
        else:
            for media in video_json_parser["media"]["rendition"][0]:
                final_url = media["href"]
        if requests.get(final_url, stream=True).status_code == 404:
            label = plugin.localize(LABELS['Video stream no longer exists'])
            Script.notify(label, label)
            return False
        if download_mode:
            return download.download_video(final_url, video_label)

        return final_url
    else:
        # (Video Not Hosted By Allocine)
        url_video_embeded = re.compile('src=\'(.*?)\'').findall(
            video_json_parser["media"]["trailerEmbed"])[0]
        if 'allocine' in url_video_embeded:
            url_video_embeded_html = urlquick.get(url_video_embeded).text
            url_video_resolver = re.compile('data-model="(.*?)"').findall(
                url_video_embeded_html)[0]
            url_video_resolver = url_video_resolver.replace('&quot;', '"')
            url_video_resolver = url_video_resolver.replace('\\', '')
            url_video_resolver = url_video_resolver.replace('&amp;', '&')
            url_video_resolver = url_video_resolver.replace('%2F', '/')
            # Case Youtube
            if 'youtube' in url_video_resolver:
                video_id = re.compile(r'www.youtube.com/embed/(.*?)[\?\"\&]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_youtube(
                    plugin, video_id, download_mode, video_label)

            # Case DailyMotion
            elif 'dailymotion' in url_video_resolver:
                video_id = re.compile(r'embed/video/(.*?)[\"\?]').findall(
                    url_video_resolver)[0]
                return resolver_proxy.get_stream_dailymotion(
                    plugin, video_id, download_mode, video_label)

            # Case Facebook
            elif 'facebook' in url_video_resolver:
                video_id = re.compile('www.facebook.com/allocine/videos/(.*?)/'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_facebook(
                    plugin, video_id, download_mode, video_label)

            # Case Vimeo
            elif 'vimeo' in url_video_resolver:
                video_id = re.compile('player.vimeo.com/video/(.*?)[\?\"]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_vimeo(plugin, video_id,
                                                       download_mode,
                                                       video_label)

            # TO DO ? (return an error)
            else:
                return False
        else:
            # Case Youtube
            if 'youtube' in url_video_embeded:
                video_id = re.compile('www.youtube.com/embed/(.*?)[\?\"\&]'
                                      ).findall(url_video_embeded)[0]
                return resolver_proxy.get_stream_youtube(
                    plugin, video_id, download_mode, video_label)

            # TO DO ? (return an error)
            else:
                return False
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  loop=1,
                  **kwargs):
    """Get video URL and start video player"""
    resp = urlquick.get(video_url, max_age=-1)
    root = resp.parse()

    if root.find(".//figure[@class='player player-auto-play js-player']"
                 ) is not None:
        stream_datas_json = root.find(
            ".//figure[@class='player player-auto-play js-player']").get(
                'data-model')
        json_parser = json.loads(stream_datas_json)

        final_url = ''
        if 'high' in json_parser["videos"][0]["sources"]:
            final_url = 'https:' + json_parser["videos"][0]["sources"]["high"]
        elif 'medium' in json_parser["videos"][0]["sources"]:
            final_url = 'https:' + json_parser["videos"][0]["sources"]["medium"]
        else:
            final_url = json_parser["videos"][0]["sources"]["standard"]

        if download_mode:
            return download.download_video(final_url)
        return final_url
    elif root.find(
            ".//div[@class='card entity-card entity-card-overview entity-card-list cf']"
    ) is not None:
        if loop == 1:  # prevent infinite recursion
            resp2 = urlquick.get(video_url)
            root2 = resp2.parse(
                "div",
                attrs={
                    "class":
                    "card entity-card entity-card-overview entity-card-list cf"
                })
            video_url2 = URL_ROOT + unobfuscated(
                root2.find('.//figure/span').get('class'))
            return get_video_url(plugin, item_id, video_url2, loop=2)
    elif root.find(
            ".//div[@class='card entity-card entity-card-overview entity-card-list cf ']"
    ) is not None:
        if loop == 1:  # prevent infinite recursion
            resp2 = urlquick.get(video_url)
            root2 = resp2.parse(
                "div",
                attrs={
                    "class":
                    "card entity-card entity-card-overview entity-card-list cf "
                })
            video_url2 = URL_ROOT + unobfuscated(
                root2.find('.//figure/span').get('class'))
            return get_video_url(plugin, item_id, video_url2, loop=2)
    elif root.find(".//div[@class='more-overlay-item social-export light']"
                   ) is not None:
        stream_datas_json = root.find(
            ".//div[@class='more-overlay-item social-export light']").get(
                'data-model')
        print(repr(stream_datas_json))
        json_parser = json.loads(stream_datas_json)
        if 'code' in json_parser["videos"][0]["sources"]:
            url_video_resolver = json_parser["videos"][0]["sources"]["code"]
            if 'youtube' in url_video_resolver:
                video_id = re.compile(r'www.youtube.com/embed/(.*?)[\?\"\&]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_youtube(
                    plugin, video_id, download_mode)

            # Case DailyMotion
            elif 'dailymotion' in url_video_resolver:
                video_id = re.compile(r'embed/video/(.*?)[\"\?]').findall(
                    url_video_resolver)[0]
                return resolver_proxy.get_stream_dailymotion(
                    plugin, video_id, download_mode)

            # Case Facebook
            elif 'facebook' in url_video_resolver:
                video_id = re.compile(
                    r'www.facebook.com/allocine/videos/(.*?)/').findall(
                        url_video_resolver)[0]
                return resolver_proxy.get_stream_facebook(
                    plugin, video_id, download_mode)

            # Case Vimeo
            elif 'vimeo' in url_video_resolver:
                video_id = re.compile(r'player.vimeo.com/video/(.*?)[\?\"]'
                                      ).findall(url_video_resolver)[0]
                return resolver_proxy.get_stream_vimeo(plugin, video_id,
                                                       download_mode)

    plugin.notify(plugin.localize(30718), '')
    return False