Example #1
0
def get_video_url(plugin, item_id, video_id, download_mode=False, **kwargs):
    """Get video URL and start video player"""

    resp = requests.get(URL_STREAM % video_id)
    json_parser = json.loads(resp.text)
    final_url = URL_ROOT + json_parser["files"]["desktop"]["file"]

    if download_mode:
        return download.download_video(final_url)
    return final_url
Example #2
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)
    stream_datas_url = re.compile(r'jQuery.get\("(.*?)"').findall(resp.text)[0]
    resp2 = urlquick.get(stream_datas_url)
    final_video_url = re.compile(r'src="(.*?)"').findall(resp2.text)[0]

    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #3
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_url = re.compile(r'source src=\"(.*?)\"').findall(video_html)[0]

    if download_mode:
        return download.download_video(video_url)

    return video_url
Example #4
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  **kwargs):
    """Get video URL and start video player"""
    if download_mode:
        return download.download_video(video_url)

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

    if download_mode:
        return download.download_video(video_url, video_label)
    return video_url
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    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, download_mode)
    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(30709),
                                                   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)
        return url_selected
    else:
        return False
Example #7
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  video_label=None):

    session_requests = requests.session()

    # Build PAYLOAD
    payload = {
        'loginID': plugin.setting.get_string('vrt.login'),
        'password': plugin.setting.get_string('vrt.password'),
        'targetEnv': 'jssdk',
        'APIKey': get_api_key(),
        'includeSSOToken': 'true',
        'authMode': 'cookie'
    }
    # Login / Verify
    resp = session_requests.post(URL_LOGIN, data=payload)
    json_parser = json.loads(resp.text)
    if json_parser['statusCode'] != 200:
        plugin.notify('ERROR', item_id + ' : ' + plugin.localize(30711))
        return False
    # Request Token
    headers = {
        'Content-Type': 'application/json',
        'Referer': URL_ROOT + '/vrtnu/'
    }
    data = '{"uid": "%s", ' \
        '"uidsig": "%s", ' \
        '"ts": "%s", ' \
        '"email": "%s"}' % (
            json_parser['UID'],
            json_parser['UIDSignature'],
            json_parser['signatureTimestamp'],
            plugin.setting.get_string('vrt.login'))
    resp2 = session_requests.post(URL_TOKEN, data=data, headers=headers)
    # Video ID
    video_id_datas_url = video_url[:-1] + '.mssecurevideo.json'
    resp3 = session_requests.get(video_id_datas_url)
    json_parser2 = json.loads(resp3.text)
    video_id = ''
    for video_id_datas in json_parser2.iteritems():
        video_id = json_parser2[video_id_datas[0]]['videoid']
    # Stream Url
    resp4 = session_requests.get(URL_STREAM_JSON % video_id)
    json_parser3 = json.loads(resp4.text)
    stream_url = ''
    for stream_datas in json_parser3['targetUrls']:
        if 'HLS' in stream_datas['type']:
            stream_url = stream_datas['url']

    if download_mode:
        return download.download_video(stream_url, video_label)
    return stream_url
Example #8
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  item_dict,
                  download_mode=False,
                  video_label=None,
                  **kwargs):

    resp = urlquick.get(URL_STREAM % video_id, max_age=-1)
    json_parser = json.loads(resp.text)

    if 'error' in json_parser:
        if json_parser["error"] is not None:
            if json_parser["error"]["status"] == '403':
                plugin.notify('ERROR', plugin.localize(30713))
            else:
                plugin.notify('ERROR', plugin.localize(30716))
            return False

    if 'drmToken' in json_parser["playback"]:

        if cqu.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

        if download_mode:
            xbmcgui.Dialog().ok('Info', plugin.localize(30603))
            return False

        token = json_parser["playback"]["drmToken"]

        item = Listitem()
        item.path = json_parser["playback"]["streamUrlDash"]
        item.label = item_dict['label']
        item.info.update(item_dict['info'])
        item.art.update(item_dict['art'])
        item.property['inputstreamaddon'] = 'inputstream.adaptive'
        item.property['inputstream.adaptive.manifest_type'] = 'mpd'
        item.property[
            'inputstream.adaptive.license_type'] = 'com.widevine.alpha'
        item.property[
            'inputstream.adaptive.license_key'] = URL_LICENCE_KEY % token

        return item
    else:
        final_video_url = json_parser["playback"]["streamUrlHls"]

        if download_mode:
            return download.download_video(final_video_url, video_label)

        return final_video_url
def get_francetv_video_stream(plugin,
                              id_diffusion,
                              item_dict=None,
                              download_mode=False,
                              video_label=None):

    geoip_value = web_utils.geoip()
    resp = urlquick.get(URL_FRANCETV_CATCHUP_PROGRAM_INFO %
                        (id_diffusion, geoip_value),
                        max_age=-1)
    json_parser = json.loads(resp.text)

    if 'video' not in json_parser:
        plugin.notify('ERROR', plugin.localize(30716))
        return False

    all_video_datas = []
    video_datas = json_parser['video']
    # Implementer Caption (found case)
    # Implement DRM (found case)
    if video_datas['drm'] is not None:
        all_video_datas.append(
            (video_datas['format'], 'True', video_datas['token']))
    else:
        all_video_datas.append(
            (video_datas['format'], 'False', video_datas['token']))

    url_selected = all_video_datas[0][2]
    if 'hls' in all_video_datas[0][0]:
        json_parser2 = json.loads(urlquick.get(url_selected, max_age=-1).text)
        final_video_url = json_parser2['url']
        if download_mode:
            return download.download_video(final_video_url, video_label)
        return final_video_url
    elif 'dash' in all_video_datas[0][0]:
        if download_mode:
            xbmcgui.Dialog().ok('Info', plugin.localize(30603))
            return False
        is_helper = inputstreamhelper.Helper('mpd')
        if not is_helper.check_inputstream():
            return False
        json_parser2 = json.loads(urlquick.get(url_selected, max_age=-1).text)

        item = Listitem()
        item.path = json_parser2['url']
        item.property['inputstreamaddon'] = 'inputstream.adaptive'
        item.property['inputstream.adaptive.manifest_type'] = 'mpd'
        item.label = item_dict['label']
        item.info.update(item_dict['info'])
        item.art.update(item_dict['art'])

        return item
    else:
        # Return info the format is not known
        return False
Example #10
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  download_mode=False,
                  video_label=None):

    final_video_url = URL_STREAM % video_id

    if download_mode:
        return download.download_video(final_video_url, video_label)
    return final_video_url
Example #11
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)
    list_streams_datas = re.compile(r'mediaurl: \'(.*?)\'').findall(resp.text)
    for stream_datas in list_streams_datas:
        if 'm3u8' in stream_datas:
            stream_url = stream_datas

    if download_mode:
        return download.download_video(stream_url)
    return stream_url
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url)
    video_id = re.compile(r'idMedia\"\:\"(.*?)\"').findall(resp.text)[0]
    resp2 = urlquick.get(URL_STREAM_REPLAY % video_id)
    json_parser = json.loads(resp2.text)
    final_video_url = json_parser["url"]

    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #13
0
def get_video_url(plugin,
                  item_id,
                  video_id,
                  download_mode=False,
                  **kwargs):

    final_video_url = URL_STREAM % video_id

    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #14
0
def get_video_url(plugin, item_id, video_id, download_mode=False, **kwargs):

    resp = urlquick.get(URL_STREAM % video_id)
    list_stream_datas = re.compile('source src="(.*?)"').findall(resp.text)
    stream_url = ''
    for stream_datas in list_stream_datas:
        if 'mp4' in stream_datas:
            stream_url = stream_datas
    if download_mode:
        return download.download_video(stream_url)
    return stream_url
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url,
                        headers={'User-Agent': web_utils.get_random_ua()},
                        max_age=-1)
    stream_url = re.compile('contentUrl\"\: \"(.*?)\"').findall(resp.text)[0]

    if download_mode:
        return download.download_video(stream_url)

    return stream_url
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  video_label=None):

    resp = urlquick.get(video_url)
    json_value = re.compile(r'src\: \{(.*?)\}\,').findall(resp.text)[0]
    json_parser = json.loads('{' + json_value + '}')
    if download_mode:
        return download.download_video(json_parser["m3u8"], video_label)
    return json_parser["m3u8"]
Example #17
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url,
                        headers={'User-Agent': web_utils.get_random_ua()},
                        max_age=-1)
    video_json = re.compile('data-broadcast=\'(.*?)\'').findall(resp.text)[0]
    json_parser = json.loads(video_json)
    final_video_url = json_parser["files"][0]["url"]

    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #18
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  **kwargs):
    resp = urlquick.get(video_url)
    final_url = re.compile(
        r'file\'\: \'(.*?)\'').findall(resp.text)[0]

    if download_mode:
        return download.download_video(final_url)
    return final_url
Example #19
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    resp = urlquick.get(video_url, max_age=-1)
    root = resp.parse()
    video_id_url = root.findall('.//iframe')[1].get('src')

    resp2 = urlquick.get(video_id_url, max_age=-1)
    final_video_url = 'https://tvl-vod.l3.freecaster.net' + re.compile(
        r'freecaster\.net(.*?)\"').findall(resp2.text)[0] + '/master.m3u8'
    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #20
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):

    if download_mode:
        return download.download_video(video_url)

    item = Listitem()
    item.label = kwargs.get('title', 'unknown')
    item.path = video_url
    if kwargs.get('subtitles') and plugin.setting.get_boolean(
            'active_subtitle'):
        item.subtitles = [URL_ROOT + sub['url'] for sub in kwargs['subtitles']]
    return item
Example #21
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  **kwargs):

    resp = urlquick.get(video_url)
    json_parser = json.loads(resp.text)

    if download_mode:
        return download.download_video(json_parser["video"]["contentUrl"])
    return json_parser["video"]["contentUrl"]
Example #22
0
def get_video_url(plugin, item_id, video_url, download_mode=False, **kwargs):
    # Just One format of each video (no need of QUALITY)
    resp = urlquick.get(video_url)
    root = resp.parse("div", attrs={"class": "nrjVideo-player"})

    stream_url = ''
    for stream in root.iterfind(".//meta"):
        if 'mp4' in stream.get('content'):
            stream_url = stream.get('content')

    if download_mode:
        return download.download_video(stream_url)
    return stream_url
def get_video_url(plugin, item_id, video_id, download_mode=False, **kwargs):

    resp = urlquick.get(URL_REPLAY_STREAM % video_id)
    json_parser = json.loads(resp.text)
    stream_url = ''
    for stream_datas in json_parser["channel"]["item"]["media-group"][
            "media-content"]:
        if stream_datas["@attributes"]["type"] == 'application/x-mpegURL':
            stream_url = stream_datas["@attributes"]["url"]

    if download_mode:
        return download.download_video(stream_url)
    return stream_url
Example #24
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  **kwargs):

    resp = urlquick.get(video_url)
    stream_url = re.compile(r'file: "(.*?)m3u8').findall(resp.text)[0]
    final_video_url = stream_url.replace('" + "', '') + 'm3u8'

    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
Example #25
0
def get_video_url(plugin,
                  item_id,
                  video_url,
                  download_mode=False,
                  video_label=None):

    resp = urlquick.get(video_url)
    final_video_url = re.compile(r'file\': "(.*?)"').findall(resp.text)[0]

    if download_mode:
        return download.download_video(final_video_url, video_label)

    return final_video_url
def get_video_url(plugin,
                  item_id,
                  video_id,
                  download_mode=False,
                  video_label=None):

    resp = urlquick.get(URL_STREAM % video_id)
    root_soup = bs(resp.text, 'html.parser')
    final_video_url = root_soup.find(id='VideoPlayerDatas').get('data-filehd')

    if download_mode:
        return download.download_video(final_video_url, video_label)
    return final_video_url
Example #27
0
def get_video_news_url(plugin,
                       item_id,
                       video_id,
                       video_date,
                       download_mode=False,
                       **kwargs):

    resp = urlquick.get(URL_STREAM_NHK_NEWS % (video_date, video_id))
    json_parser = json.loads(resp.text)
    final_video_url = json_parser["mediaResource"]["url"]
    if download_mode:
        return download.download_video(final_video_url)
    return final_video_url
def get_video_url(plugin, item_id, video_id, download_mode=False, **kwargs):
    """Get video URL and start video player"""
    video_jsonparser = video_query(videoid=video_id).json()

    video_url = ''
    for video in video_jsonparser['data']['video']['renditions']:
        if video["type"] == 'hls':
            video_url = video["url"]

    if download_mode:
        return download.download_video(video_url)

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

    resp = urlquick.get(video_url, max_age=-1)
    list_streams_datas = re.compile(r'source src="(.*?)"').findall(resp.text)
    stream_url = ''
    for stream_datas in list_streams_datas:
        if 'm3u8' in stream_datas or \
                'mp4' in stream_datas:
            stream_url = stream_datas

    if download_mode:
        return download.download_video(stream_url)
    return stream_url
def get_video_url(
        plugin, item_id, video_id, download_mode=False, video_label=None):

    resp = urlquick.get(URL_VIDEO_VOD % (get_pcode(item_id), video_id))
    json_parser = json.loads(resp.text)

    for stream_datas in json_parser["authorization_data"][video_id]["streams"]:
        stream_url_base64 = stream_datas["url"]["data"]

    final_video_url = base64.standard_b64decode(stream_url_base64)
    if download_mode:
        return download.download_video(final_video_url, video_label)
    return final_video_url