def resolve(url):
    data = util.extract_jwplayer_setup(util.request(url))
    if data and 'sources' in data:
        result = []
        for source in data['sources']:
            items = []
            if source['file'].endswith('.smil'):
                tree = ElementTree.fromstring(util.request(source['file']))
                base_path = tree.find('./head/meta').get('base')
                for video in tree.findall('./body/switch/video'):
                    items.append({
                        'url':
                        '%s playpath=%s pageUrl=%s swfUrl=%s swfVfy=true' %
                        (base_path, video.get('src'), url,
                         'http://static.flashx.tv/player6/jwplayer.flash.swf'),
                        'quality':
                        video.get('height') + 'p'
                    })
            else:
                items.append({'url': source['file']})
            if len(data['tracks']) > 0:
                for item in items:
                    for track in data['tracks']:
                        new_item = deepcopy(item)
                        new_item['subs'] = track['file']
                        new_item['lang'] = ' %s subtitles' % track['label']
                        result.append(new_item)
            else:
                result += items
        return result
    return None
def resolve(url):
    refererurl = re.search(r'<iframe src="([^"]+)".*', util.request(url), re.I | re.S).group(1)
    try:
        data=[x for x in util.request(refererurl).splitlines() if 'file:' in x and '.mp4' in x][0]
    except:
        return None
    streamurl = re.search(r'.*file:"([^"]+?)".*', data).group(1)
    headers={'Referer': refererurl}
    return [{'url': streamurl, 'headers': headers}]
def resolve(url):
    m = _regex(url)
    if m:
        data = util.request(url)
        sid = re.search('sid=(?P<sid>[^\&]+)',data)
        if sid:
            data = util.request('http://www.vuuzla.com/app/deliver/playlist/%s?sid=%s' % (m.group('id'),sid.group('sid')))
            link = re.search('<video.+?url=\"(?P<url>[^\"]+)',data)
            if link:
                return [{'url':link.group('url')}]
def resolve(url):
    if supports(url):
        data = util.request(url)
        m = re.search('flashvars.file=\"([^\"]+)', data,
                      re.IGNORECASE | re.DOTALL)
        n = re.search('flashvars.filekey=\"([^\"]+)', data,
                      re.IGNORECASE | re.DOTALL)
        if not m == None and not n == None:
            data = util.request(
                'http://www.novamov.com/api/player.api.php?key=%s&file=%s&user=undefined&pass=undefined&codes=1'
                % (n.group(1), m.group(1)))
            stream = re.search('url=([^\&]+)', data).group(1)
            return [{'url': stream}]
def resolve(url):
    m = _regex(url)
    f = None
    if not m is None:
        try:
            data = util.request(
                'http://www.zkouknito.cz/player/scripts/videoinfo_externi.php?id=%s'
                % m.group('id'))
            f = re.search('<file>([^<]+)', data, re.IGNORECASE | re.DOTALL)
        except Exception:
            data = util.request(url)
            f = re.search("\'file\':.*?'([^']+)", data,
                          re.IGNORECASE | re.DOTALL)
        if f:
            return [{'url': f.group(1)}]
예제 #6
0
def resolve(url):
    if not _regex(url) == None:
        data = util.request(url.replace('&#038;', '&'))
        data = util.substr(data, 'flashvars', 'params')
        domain = re.search('flashvars\.domain=\"([^\"]+)', data,
                           re.IGNORECASE | re.DOTALL).group(1)
        file = re.search('flashvars\.file=\"([^\"]+)', data,
                         re.IGNORECASE | re.DOTALL).group(1)
        key = re.search('flashvars\.filekey=\"([^\"]+)', data,
                        re.IGNORECASE | re.DOTALL).group(1)
        data = util.request(
            '%s/api/player.api.php?key=%s&file=%s&user=undefined&codes=undefined&pass=undefined'
            % (domain, key, file))
        m = re.search('url=(?P<url>[^\&]+)', data, re.IGNORECASE | re.DOTALL)
        if not m == None:
            return [{'url': m.group('url')}]
예제 #7
0
def _regex(url):
    match = re.search(
        "(hqq|netu)\.tv/watch_video\.php\?v=(?P<vid>[0-9A-Za-z]+)", url)
    if match:
        return match
    match = re.search(
        r'(hqq|netu)\.tv/player/embed_player\.php\?vid=(?P<vid>[0-9A-Za-z]+)',
        url)
    if match:
        return match
    match = re.search(r'(hqq|netu)\.tv/player/hash\.php\?hash=\d+', url)
    if match:
        match = re.search(r'var\s+vid\s*=\s*\'(?P<vid>[^\']+)\'',
                          urllib.unquote(util.request(url)))
        if match:
            return match
    b64enc = re.search(
        r'data:text/javascript\;charset\=utf\-8\;base64([^\"]+)', url)
    b64dec = b64enc and base64.decodestring(b64enc.group(1))
    enc = b64dec and re.search(r"\'([^']+)\'", b64dec).group(1)
    if enc:
        decoded = _decode(enc)
        match = re.search(r'<input name="vid"[^>]+? value="(?P<vid>[^"]+?)">',
                          decoded)
        if re.search(
                r'<form(.+?)action="[^"]*(hqq|netu)\.tv/player/embed_player\.php"[^>]*>',
                decoded) and match:
            return match
    return None
예제 #8
0
def resolve(url):
    if supports(url):
        data = util.substr(util.request(url), '<body>', '</script>')
        m = re.search('url\[[\d]+\] = \'([^\']+)', data,
                      re.IGNORECASE | re.DOTALL)
        if not m == None:
            return [{'url': m.group(1)}]
def url(url):
	m = _regex(url)
	if not m == None:
		data = latin2text(util.request('%s%s%s?mode=play' % (m.group('url') ,m.group('html'),m.group('id'))))
		f = re.search('<videos><video url=\'(.+?)[^ ] rating',data,re.IGNORECASE | re.DOTALL)
		if f:
			return [f.group(1)]
def url(url):
    m = _regex(url)
    if m:
        data = util.request('http://rutube.ru/trackinfo/' + m.group('id') +
                            '.xml')
        n = re.search('<m3u8>([^<]+)', data, re.IGNORECASE | re.DOTALL)
        if not n == None:
            return [n.group(1).strip()]
예제 #11
0
def resolve(url):
    m = _regex(url)
    if not m == None:
        stream = None
        data = util.request('http://www.videozer.com/player_control/settings.php?v=%s&em=TRUE&fv=v1.1.12' % m.group('id'))
        json = data.replace('false','False').replace('true','True').replace('null','None')
        aData = eval('('+json+')')
        max_res = 99999
        r = re.finditer('"l".*?:.*?"(.+?)".+?"u".*?:.*?"(.+?)"', json)
        chosen_res = 0
        stream_url_part1 = False
        if r:
            for match in r:
                res, url = match.groups()
                if (res == 'LQ' ): res = 240
                elif (res == 'SD') : res = 480
            else: 
                res = 720
                if res > chosen_res and res <= max_res:
                    stream_url_part1 = url.decode('base-64')
                    chosen_res = res
        else:
            return
        if not stream_url_part1:
            return

    # Decode the link from the json data settings.
        spn_ik = unhexlify(__decrypt(aData["cfg"]["login"]["spen"], aData["cfg"]["login"]["salt"], 950569)).split(';')
        spn = spn_ik[0].split('&')
        ik = spn_ik[1]

        for item in ik.split('&') :
            temp = item.split('=')
            if temp[0] == 'ik' : 
                key = __get_key(temp[1])

        sLink = ""
        for item in spn :
            item = item.split('=')
            if(int(item[1])==1):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["info"]["sece2"], aData["cfg"]["environment"]["rkts"], key) + '&'  #decrypt32byte
            elif(int(item[1]==2)):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["url"],aData["cfg"]["environment"]["rkts"], key) + '&'	
            elif(int(item[1])==3):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["type"],aData["cfg"]["environment"]["rkts"], key,26,25431,56989,93,32589,784152) + '&'	
            elif(int(item[1])==4):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["time"],aData["cfg"]["environment"]["rkts"], key,82,84669,48779,32,65598,115498) + '&'
            elif(int(item[1])==5):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["login"]["euno"],aData["cfg"]["login"]["pepper"], key,10,12254,95369,39,21544,545555) + '&'
            elif(int(item[1])==6):
                sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["login"]["sugar"],aData["cfg"]["ads"]["lightbox2"]["time"], key,22,66595,17447,52,66852,400595) + '&'			

        sLink = sLink + "start=0"

        sMediaLink = stream_url_part1 + '&' + sLink

        return [{'url':sMediaLink}]
def resolve(url):
    if supports(url):
        data = util.request(url)
        data = util.substr(data,'<div id=\"player_code','</div')
        try:
            video_id = re.search('flv\|\|([^\|]+)',data).group(1)
            return [{'url':'http://servertip.cz/cgi-bin/dl.cgi/%s/video.flv' % video_id}]
        except:
            pass
def resolve(link):
    if _regex(link):
        data = util.request(link)
        url = re.search('base_url\: \"(?P<url>[^\"]+)',data)
        file = re.search('file_name\: \"(?P<url>[^\"]+)',data)
        res = re.search('resolutions\: \"(?P<url>[^\"]+)',data)
        if url and file and res:
            url = '%s/%s/%s' % (url.group('url'),res.group('url'),file.group('url'))
            return [{'quality':res.group('url'),'url':url}]
def resolve(url):
    data = re.search(r'<script[^\.]+?\.setup\(([^\)]+?)\);', util.request(url), re.I | re.S)
    if data:
        data = demjson.decode(data.group(1).decode('string_escape'))
        if 'sources' in data:
            result = []
            for source in data['sources']:
                result.append({'url': source['file'], 'quality': source['label']})
            return result
    return None
def resolve(url):
    try:
        data = [
            x for x in util.request('http:' + url).splitlines()
            if 'file:' in x and '.mp4' in x
        ][0]
    except:
        return None
    streamurl = re.search(r'.*file: *"([^"]+?)".*', data).group(1)
    return [{'url': streamurl}]
def resolve(url):
    m = _regex(url)
    if m:
        id = int(m.group('v'))
        params = {
                  'v':id,
                  }
        quality = "480p"
        data = util.request("http://embed.publicvideohost.org/v.php?" + urllib.urlencode(params))
        vurl = re.search('file\:(.*?)\"(?P<url>[^"]+)',data, re.IGNORECASE | re.DOTALL).group('url')
        return [{'quality':quality, 'url':vurl}]
def resolve(url):
    m = _regex(url)
    if m:
        #http://gosupark.com/embed-j3erxu8i2o30-630x320.html
        data = util.request('http://gosupark.com/' + m.group('url'))
        n = re.search('file: \"(.+?)\"', data, re.IGNORECASE | re.DOTALL)
        quality = '???'
        q = re.search('x(\d+)\.html', url)
        if q:
            quality = q.group(1) + 'p'
        if not n == None:
            return [{'quality': quality, 'url': n.group(1).strip()}]
def resolve(link):
    if not _regex(link) == None:
        data = util.request(link)
        data = util.substr(data, 'div id=\"playerWrap\"', '<embed>')
        if len(data) > 0:
            host = re.search('host=([^\&]+)', data,
                             re.IGNORECASE | re.DOTALL).group(1)
            oid = re.search('oid=([^\&]+)', data,
                            re.IGNORECASE | re.DOTALL).group(1)
            uid = re.search('uid=([^\&]+)', data,
                            re.IGNORECASE | re.DOTALL).group(1)
            vtag = re.search('vtag=([^\&]+)', data,
                             re.IGNORECASE | re.DOTALL).group(1)
            hd = re.search('hd_def=([^\&]+)', data,
                           re.IGNORECASE | re.DOTALL).group(1)
            max_hd = re.search('hd=([^\&]+)', data,
                               re.IGNORECASE | re.DOTALL).group(1)
            no_flv = re.search('no_flv=([^\&]+)', data,
                               re.IGNORECASE | re.DOTALL).group(1)
            url = '%su%s/videos/%s' % (host, uid, vtag)
            if no_flv != '1':
                return [{
                    'name': __name__,
                    'quality': '???',
                    'url': url + '.flv',
                    'surl': link,
                    'subs': ''
                }]
            if no_flv == '1':
                res = int(hd)
                if max_hd:
                    res = int(max_hd)
                if res < 0:
                    return [{
                        'name': __name__,
                        'quality': '240p',
                        'url': url + '.flv',
                        'surl': link,
                        'subs': ''
                    }]
                resolutions = ['240', '360', '480', '720', '1080']
                ret = []
                for index, resolution in enumerate(resolutions):
                    if index > res:
                        return ret
                    ret.append({
                        'name': __name__,
                        'quality': resolution + 'p',
                        'url': url + '.' + resolution + '.mp4',
                        'surl': link,
                        'subs': ''
                    })
                return ret
예제 #19
0
def resolve(url):
    m = _regex(url)
    if m:
        surl = m.group('url').replace('embed', 'iframe')
        data = util.request('http://played.to/%s' % surl)
        n = re.search('file: \"(.+?)\"', data, re.IGNORECASE | re.DOTALL)
        quality = '???'
        q = re.search('x(\d+)\.html', url)
        if q:
            quality = q.group(1) + 'p'
        if not n == None:
            return [{'quality': quality, 'url': n.group(1).strip()}]
예제 #20
0
def resolve(url):
    m = _regex(url)
    if not m == None:
        data = util.request(url)
        stream = re.search('_video_file = \'(?P<url>[^\']+)', data)
        if stream:
            return [{
                'name': __name__,
                'quality': '360p',
                'url': stream.group('url'),
                'surl': url
            }]
def login_stale():
    url = 'http://www.putlocker.com/cp.php'
    if not os.path.exists(cookie_file):
        return True
    # self.net.set_cookies(cookie_file)
    source = util.request(url)
    if re.search(
            '(?:<span class=pro_user>\( Pro \)</span>|<span class="free_user">\( Free \)</span>)',
            source):
        print('Putlocker account appears to be logged in.')
        return False
    else:
        return True
예제 #22
0
def resolve(url):
    m = _regex(url)
    if not m == None:
        url = re.sub('.*player.swf\?','',url)
        data = util.request('http://www.zideo.nl/player/config?'+url)
        try:
            link = re.search('<file>([^<]+)',data).group(1)
        #	hd = re.search('<hd\.state>([^<]+)',data).group(1)
        #	if hd == 'true':
        #		link = re.search('<hd\.file>([^<]+)',data).group(1)
            return [{'url':link}]
        except:
            pass
예제 #23
0
def resolve(url):
    m = _regex(url)
    if m:
        data = util.request('http://streamin.to/'+m.group('url'))
        n = re.search('config:{file:\'(.+?)\'',data,re.IGNORECASE | re.DOTALL)
        k = re.search('streamer: \"(.+?)\"',data,re.IGNORECASE | re.DOTALL)
        quality = '???'
        q = re.search('x(\d+)\.html',url)
        if q:
            quality = q.group(1)+'p'
        if n and k:
            url = '%s playpath=%s' % (k.group(1).strip(),n.group(1).strip())
            return [{'quality':quality,'url':url}]
def resolve(url):
    cookies = {}
    util.init_urllib(cookies)
    data = util.request(url)
    view = pickle.loads(util._cookie_jar.dump())[
        '.mojevideo.sk']['/'].keys()[0]
    st = re.search(r'vHash=\[\'([^\']+)', data)
    if not st:
        return None
    st = st.group(1)
    tim = int(time.time())
    base = 'http://fs5.mojevideo.sk:8080/securevd/'
    return [{'url': base + view.replace('view', '') + '.mp4?st=%s&e=%s|Cookie=%s=1' % (st, tim, view)}]
예제 #25
0
def resolve(url):
    realurl = re.search(r'<iframe src="([^"]+)".*', util.request(url),
                        re.I | re.S).group(1)
    data = re.search(r'<script[^\.]+?\.setup\((.+?)\);', util.request(realurl),
                     re.I | re.S)
    if data:
        data = data.group(1).decode('string_escape')
        data = re.sub(r'\w+\(([^\)]+?)\)', r'\1', data)  # Strip JS functions
        data = re.sub(r': *([^"][a-zA-Z]+)', r':"\1"',
                      data)  # Fix incorrect JSON
        data = demjson.decode(data)
        if 'sources' in data:
            result = []
            for source in data['sources']:
                if 'tracks' in data:
                    for track in data['tracks']:
                        result.append({
                            'url': source['file'],
                            'subs': track['file'],
                            'lang': ' %s subtitles' % track['label']
                        })
            return result
    return None
예제 #26
0
def resolve(url):
    m = _regex(url)
    if m:
        resp = urllib.request.urlopen(url)
        sessc = resp.headers.get('Set-Cookie').split(';')[0]
        resp.close()
        furl = "%s/w.jsp?id=%s&width=620&height=349&pos=&skin=0" % (BASE_URL,m.group('id'))
        headers = {'Cookie':sessc, 'Referer':url}
        data = util.request(furl,headers)
        m1 = re.search('document.cookie = "([^"]+?)"',data)
        m2 = re.search('src="(\/pcsevlet\?code=[^"]+)', data)
        if m1 and m2:
            headers['Cookie'] = headers['Cookie'] + '; ' + m1.group(1)
            headers['Referer'] = BASE_URL + '/flowplayer/flowplayer.commercial-3.2.16.swf'
            data = util.request(BASE_URL + m2.group(1),headers)
            m_vurl = re.search("'url':.*?'(http[^']+?mp4)'", data, re.DOTALL)
            m_surl = re.search("'captionUrl':.*?'(http[^']+)'",data, re.DOTALL)
            if m_vurl:
                resolved = {'url':m_vurl.group(1).strip(),'quality':'???'}
                if m_surl:
                    resolved['subs'] = m_surl.group(1).strip()
                return [resolved]
            else:
                return []
예제 #27
0
def resolve(url):
    m = _regex(url)
    if not m == None:
        data = util.request(url)
        if data.find('jwplayer(\'mediaplayer') > 0:
            video = re.search('\'file\'\: \'(?P<url>.+?[flv|mp4])\'',data)
            if video:
                
                item = {}
                item['url'] = video.group('url')
                subs = re.search('\'file\'\: \'(?P<url>.+?srt)',data)
                if subs:
                    item['subs'] = _furl(subs.group('url'))
                print(item)
                return [item]
예제 #28
0
def resolve(url):
    m = _regex(url)
    if m:
        id = int(m.group('id'))
        headers = {
                   "Referer":"http://st.kset.kz/pl/pl.swf"
                   }
        
        params = {
                  'id':id,
                  'ref':'http://kset.kz/video_frame.php?id=%d' % id,
                  'r':gen_random_decimal(0, 99999999999999)
                  }
        quality = "480p"
        data = util.request("http://kset.kz/v.php?" + urllib.urlencode(params), headers=headers)
        item = util.json.loads(base64.decodestring(data))
        return [{'quality':quality, 'url':item[u'file']}]
def resolve(url):
    m = _regex(url)
    if m:
        ret = []
        data = util.request(
            "http://player.vimeo.com/v2/video/%s/config?type=moogaloop&referrer=&player_url=player.vimeo.com&v=1.0.0&cdn_url=http://a.vimeocdn.com"
            % m.group('id'))
        data = util.json.loads(data)
        h264 = data["request"]["files"]["h264"]
        for quality in h264.iterkeys():
            item = {}
            item['title'] = data['video']['title']
            item['length'] = data['video']['duration']
            item['quality'] = quality == 'hd' and '720p' or '480p'
            item['url'] = h264[quality]['url']
            ret.append(item)
        return ret
def _iframe(url):
    index = url.find('&')
    if index > 0:
        url = url[:index]
    iframe = re.search('(\d+)$', url, re.IGNORECASE | re.DOTALL)
    if iframe:
        data = util.request(url)
        ress = re.search(
            'var api = flowplayer\(\),\s+resolutions = \{([^\}]+)\}', data,
            re.IGNORECASE | re.DOTALL)
        valid_ress = re.compile("<span[^>]*>([^<]+)</span>",
                                re.IGNORECASE | re.DOTALL).findall(data)
        subs = re.search('<track.+?src=\"(?P<url>[^\"]+)', data,
                         re.IGNORECASE | re.DOTALL)
        if ress:
            ret = []
            ress = ress.group(1).strip().split(',')
            for r in ress:
                r = r.replace('"', '').split(':')
                res = r[0].strip()
                vurl = _furl(r[1].strip())
                if res in valid_ress:
                    v = {
                        'name': __name__,
                        'url': vurl,
                        'quality': res,
                        'surl': url,
                        'subs': ''
                    }
                    if subs:
                        v['subs'] = _furl(subs.group('url'))
                    ret.append(v)
            if len(ret) > 0:
                return ret
        video = re.search('url\: \'(?P<url>mp4[^\']+)', data,
                          re.IGNORECASE | re.DOTALL)
        subs = re.search('captionUrl\: \'(?P<url>[^\']+)', data,
                         re.IGNORECASE | re.DOTALL)
        if video:
            ret = {'name': __name__, 'quality': '720p', 'surl': url}
            ret['url'] = 'rtmp://koukni.cz/mp4 playpath=%s' % video.group(
                'url')
            if subs:
                ret['subs'] = _furl(subs.group('url'))
            return [ret]