コード例 #1
0
def resolve(url):
    
    try:
        
        try: 
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
            url = url.replace(referer,'').replace('?referer=','').replace('&referer=','')
        except:
            referer = url

        id = re.findall('embed/(\d+)',url)[0]
        page = 'http://www.streamlive.to/embedplayer_new2.php?width=620&height=470&channel=%s&autoplay=true'%id
        


        result = client.request(page,headers={'referer':'http://www.streamlive.to', 'Content-type':'application/x-www-form-urlencoded', 'Origin': 'http://www.streamlive.to', 'Host':'www.streamlive.to', 'User-agent':client.agent()})
        log(result)

        token_url = re.compile('getJSON\("(.+?)"').findall(result)[0]
        if 'http' not in token_url:
            token_url = 'http:' + token_url
        r2 = client.request(token_url,referer=referer)
        token = json.loads(r2)["token"]

        file = re.compile('(?:[\"\'])?file(?:[\"\'])?\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace('.flv','')
        rtmp = re.compile('streamer\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace(r'\\','\\').replace(r'\/','/')
        app = re.compile('.*.*rtmp://[\.\w:]*/([^\s]+)').findall(rtmp)[0]
        url=rtmp + ' app=' + app + ' playpath=' + file + ' swfUrl=http://www.streamlive.to/ads/streamlive.swf flashver=' + constants.flash_ver() + ' live=1 timeout=15 token=' + token + ' swfVfy=1 pageUrl='+page

        
        return url
    except:
        return
コード例 #2
0
def resolve(url):
    #try:
    s = requests.Session()

    ref = liveresolver_utils.remove_referer(url)
    result = s.get(url, headers={'User-agent': client.agent()}).text
    log(s.cookies)
コード例 #3
0
ファイル: theactionlive.py プロジェクト: uguer30/Project
def resolve(url):
    #try:
    try:
        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
    except:
        referer = url
    id = urlparse.parse_qs(urlparse.urlparse(url).query)['id'][0]

    result = client.request('http://theactionlive.com/livegamecr.js',
                            referer=referer)
    log(result)
    url = re.findall('.*\W(\w+.php).*', result)[0]
    page = 'http://theactionlive.com/' + url + '?id=' + id + '&width=620&height=490&stretching='
    result = client.request(page, referer=referer)
    id = re.findall(".*id=['\"]([^\"']+).*", result)[0]
    result = client.request('http://biggestplayer.me/playercr.js',
                            referer=page)
    url = re.findall('.*\W(\w+.php).*', result)[0]
    page2 = 'http://biggestplayer.me/' + url + '?id=' + id + '&width=620&height=490'
    result = client.request(page2, referer=page)
    url = re.findall('.*(http[^"\']+\.m3u8[^"\']*).*', result)[0]
    url += '|%s' % urllib.urlencode(
        {
            'Referer': page2,
            'User-agent': client.agent(),
            'X-Requested-With': constants.get_shockwave()
        })

    return url
コード例 #4
0
def resolve(url):
    #try:
    try:
        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
    except:
        referer = url

    try:
        channel = urlparse.parse_qs(urlparse.urlparse(url).query)['channel'][0]
    except:
        channel = re.compile('/embed/(\d+)&').findall(url)[0]

    page = 'http://www.iguide.to/embedplayer_new.php?width=700&height=410&channel=%s&autoplay=true' % channel

    log(page)
    headers = {'Host': 'www.iguide.to', 'Connection': 'keep-alive'}
    result = client.request(page, referer=referer, headers=headers)
    log(result)
    token_url = re.compile('\$.getJSON\("(.+?)", function\(json\){').findall(
        result)[0]
    token = json.loads(client.request(token_url, referer=referer))['token']

    file = re.compile('(?:\'|\")?file(?:\'|\")?\s*:\s*(?:\'|\")(.+?)(?:\'|\")'
                      ).findall(result)[0].replace('.flv', '')
    rtmp = re.compile(
        '(?:\'|\")?streamer(?:\'|\")?\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(
            result)[0].replace(r'\\', '\\').replace(r'\/', '/')
    app = re.compile('.*.*rtmp://[\.\w:]*/([^\s]+)').findall(rtmp)[0]

    url = rtmp + ' playpath=' + file + ' swfUrl=http://www.iguide.to/player/secure_player_iguide_token.swf flashver=' + constants.flash_ver(
    ) + ' live=1 timeout=15 token=' + token + ' swfVfy=1 pageUrl=' + page
    return url
コード例 #5
0
ファイル: navix.py プロジェクト: GenieTv/Genie_Tv
def resolve(url):
    #try:
        s = requests.Session()

        ref = liveresolver_utils.remove_referer(url)
        result = s.get(url, headers={'User-agent':client.agent()}).text
        log(s.cookies)
コード例 #6
0
ファイル: zoomtv.py プロジェクト: msousinha/myhome-repository
def resolve(url):
    #try:

        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        headers = { 'Referer': referer,
                                 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                                 'Content-Type' :'application/x-www-form-urlencoded',
                                 'Connection' : 'keep-alive',
                                 'Host' : 'www.zoomtv.me',
                                 'Origin' : urlparse.urlparse(referer).netloc,
                                 'User-Agent' : client.agent()
                                 }
        fid = urlparse.parse_qs(urlparse.urlparse(url).query)['v'][0]
        pid = urlparse.parse_qs(urlparse.urlparse(url).query)['pid'][0]
        url = 'http://www.zoomtv.me/embed.php?v=%s&vw=650&vh=450'%fid
        pageUrl = url
        
        
        #get desktop stream
        #headers.update({ 'User-Agent' : 'Apple-iPhone/701.341' })
        post_data = urllib.urlencode({'uagent':'Apple-iPhone/701.341', 'pid':pid})
        result = req(url,post_data,headers)
        log(result)
        
        rtmp = re.findall('.*[^\w](\w+)\s*=.{0,20}(rtmp[^\']*).*(?:streamer.{0,20}\1).*',result)[0]
        
    
        #for HQ links(no rtmp)
        if rtmp is None:
            return streamer + '|%s' % urllib.urlencode({'user-agent':client.agent(),'Referer':referer})

        url = rtmp + ' playpath=' + file + ' swfUrl=http://static.zoomtv.me/player/jwplayer.6.7.4.swf flashver=' +constants.flash_ver() + ' conn=S:' + file + ' conn=S:'+ts+' conn=S:'+sg+' conn=S:'+auth+' live=1 timeout=15 token=H69d331eccdf347b swfVfy=1 pageUrl=' + pageUrl

        return url
コード例 #7
0
ファイル: iguide.py プロジェクト: GenieTv/Genie_Tv
def resolve(url):
    #try:
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = url

        try:
            channel = urlparse.parse_qs(urlparse.urlparse(url).query)['channel'][0]
        except:
            channel = re.compile('/embed/(\d+)&').findall(url)[0]


        page = 'http://www.iguide.to/embedplayer_new.php?width=700&height=410&channel=%s&autoplay=true' % channel
        
        log(page)
        headers = {'Host':'www.iguide.to','Connection':'keep-alive'}
        result = client.request(page, referer=referer,headers = headers)
        log(result)
        token_url =re.compile('\$.getJSON\("(.+?)", function\(json\){').findall(result)[0]
        token = json.loads(client.request(token_url, referer=referer))['token']

        file = re.compile('(?:\'|\")?file(?:\'|\")?\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace('.flv','')
        rtmp = re.compile('(?:\'|\")?streamer(?:\'|\")?\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace(r'\\','\\').replace(r'\/','/')
        app = re.compile('.*.*rtmp://[\.\w:]*/([^\s]+)').findall(rtmp)[0]

        url=rtmp +  ' playpath=' + file + ' swfUrl=http://www.iguide.to/player/secure_player_iguide_token.swf flashver=' + constants.flash_ver() + ' live=1 timeout=15 token=' + token + ' swfVfy=1 pageUrl='+page
        return url
コード例 #8
0
ファイル: hdcast_org.py プロジェクト: uguer30/Project
def resolve(url):
    #try:
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = url
        
        result = client.request(url, referer=referer)
        log(result)
        return url
コード例 #9
0
ファイル: kolstg.py プロジェクト: smoke61/modules4all
def resolve(url):
    #try:
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
    	except: referer = url

    	url = liveresolver_utils.remove_referer(url)
        result = client.request(url, referer=referer)
        log(result)
        
        return url
コード例 #10
0
ファイル: veetle.py プロジェクト: tvspeler/SportStreams
def resolve(url):
    try:
        url = url.replace('/true/default', '')
        channel = re.compile('[/v/|/view#|/widget#]([\w]+)').findall(url)[-1]
        url = 'http://veetle.com/index.php/stream/ajaxStreamLocation/%s/android-hls' % channel
        result = client.request(url, mobile=True)
        log(result)
        url = json.loads(result)
        url = url['payload']
        return url
    except:
        return
コード例 #11
0
def resolve(url):
    #try:
        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        page = url.replace(referer, '').replace('&referer=', '').replace('referer=', '')

        result = client.request(page, referer=referer)
        result = decryptionUtils.doDemystify(result)
        log(result)
        rtmp = re.findall('.*(?:file|streamer|hestia):\s*["\']([^\'"]+).*',result)[0]
        rtmp=rtmp.replace('rtmpe://l.mybeststream.xyz/r/','')
        url='rtmpe://l.mybeststream.xyz/r/'+ rtmp + ' swfUrl=http://mybeststream.xyz/jwplayer.flash.swf swfsize=61916 swfhash=e54728508e787f43cd472ef9ba2e514e2eca3f0679b3782206a3808b8d89b164 token=c.r.e.a.t.e.S.t. flashver=' + constants.flash_ver() + ' live=1 timeout=15 swfVfy=1 pageUrl=' + page
        return url
コード例 #12
0
def resolve(url):
    try:
        url = url.replace('/true/default','')
        channel = re.compile('[/v/|/view#|/widget#]([\w]+)').findall(url)[-1]
        url = 'http://veetle.com/index.php/stream/ajaxStreamLocation/%s/android-hls' % channel
        result = client.request(url, mobile=True)
        log(result)
        url = json.loads(result)
        url = url['payload']
        return url
    except:
        return
コード例 #13
0
def resolve(url):
    #try:
        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        page = url.replace(referer, '').replace('&referer=', '').replace('referer=', '')

        result = client.request(page, referer=referer)
        result = decryptionUtils.doDemystify(result)
        log(result)
        rtmp = re.findall('.*(?:file|streamer|hestia):\s*["\']([^\'"]+).*',result)[0]
        rtmp=rtmp.replace('rtmpe://l.mybeststream.xyz/r/','')
        url='rtmpe://l.mybeststream.xyz/r/'+ rtmp + ' swfUrl=http://mybeststream.xyz/jwplayer.flash.swf swfsize=61916 swfhash=e54728508e787f43cd472ef9ba2e514e2eca3f0679b3782206a3808b8d89b164 token=c.r.e.a.t.e.S.t. flashver=' + constants.flash_ver() + ' live=1 timeout=15 swfVfy=1 pageUrl=' + page
        return url
コード例 #14
0
def login(cookies, post_data):
    log('Streamlive: Making new login token.')
    cj = client.request('http://www.streamlive.to/login.php',
                        post=post_data,
                        headers={
                            'referer': 'http://www.streamlive.to/login',
                            'Content-type':
                            'application/x-www-form-urlencoded',
                            'Origin': 'http://www.streamlive.to',
                            'Host': 'www.streamlive.to',
                            'User-agent': client.agent()
                        },
                        cj=cookies,
                        output='cj')
    return cj
コード例 #15
0
ファイル: ustream.py プロジェクト: uguer30/Project
def resolve(url):
    try:
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer=url
        page = url
        result = client.request(page, referer=referer)
        id = re.findall('.*ustream.vars.(?:channelId|cId)=([^;]+).*',result)[0]
        #url = 'http://uhs-akamai.ustream.tv/sjc/sjc-uhs10/streams/httpflv/ustreamVideo/%s/streams/playlist.m3u8'%id
        url = 'http://iphone-streaming.ustream.tv/uhls/' + id + '/streams/live/iphone/playlist.m3u8'
        return url
    except:
        log('Ustream: Resolver failed')
        return
コード例 #16
0
ファイル: zoomtv.py プロジェクト: tvspeler/SportStreams
def resolve(url):
    try:

        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        headers = {
            'referer': referer,
            'Accept':
            'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
            'Content-Type': 'application/x-www-form-urlencoded',
            'Connection': 'keep-alive',
            'Host': 'www.zoomtv.me',
            'Origin': urlparse.urlparse(referer).netloc,
            'User-Agent': 'Apple-iPhone/701.341'
        }
        fid = urlparse.parse_qs(urlparse.urlparse(url).query)['v'][0]
        pid = urlparse.parse_qs(urlparse.urlparse(url).query)['pid'][0]
        url = 'http://www.zoomtv.me/embed.php?v=%s&vw=650&vh=450' % fid
        pageUrl = url

        #get desktop stream
        headers.update({'User-Agent': 'Apple-iPhone/701.341'})
        post_data = urllib.urlencode({
            'uagent': 'Apple-iPhone/701.341',
            'pid': pid
        })
        result = req(url, post_data, headers)

        rtmp = re.findall(
            '.*[^\w](\w+)\s*=.{0,20}(rtmp[^\']*).*(?:streamer.{0,20}\1).*',
            result)[0]
        log(rtmp)

        #for HQ links(no rtmp)
        if rtmp is None:
            return streamer + '|%s' % urllib.urlencode(
                {
                    'user-agent': client.agent(),
                    'Referer': referer
                })

        url = rtmp + ' playpath=' + file + ' swfUrl=http://static.zoomtv.me/player/jwplayer.6.7.4.swf flashver=' + constants.flash_ver(
        ) + ' conn=S:' + file + ' conn=S:' + ts + ' conn=S:' + sg + ' conn=S:' + auth + ' live=1 timeout=15 token=H69d331eccdf347b swfVfy=1 pageUrl=' + pageUrl

        return url
    except:
        return
コード例 #17
0
def resolve(url):
    
    try:
        page = url
        user,passw = addon.get_setting('streamlive_user'),addon.get_setting('streamlive_pass')

        try: 
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
            url = url.replace(referer,'').replace('?referer=','').replace('&referer=','')
        except: referer = url


        session = start_session()
        post_data = 'username=%s&password=%s&accessed_by=web&submit=Login'%(user,passw)
        resp = session.post('http://www.streamlive.to/login.php', data=post_data, headers = {'referer':'http://www.streamlive.to/login', 'Content-type':'application/x-www-form-urlencoded', 'Origin': 'http://www.streamlive.to', 'Host':'www.streamlive.to', 'User-agent':client.agent()})
        if resp.status_code!=200:
          addon.show_small_popup(title='Streamlive.to', msg='Failed to login')
        result = session.get(url).text
        if '"na_msg">This channel is a Premium channel.<' in result:
          addon.show_small_popup(title='Streamlive.to', msg='Premium channel. Upgrade your account to watch it!')
          return 

        html = result        
        if 'captcha' in html:
            try:
                answer = re.findall('Question\:.+?\:(.+?)<',html)[0].strip()
            except:
                answer = eval(re.findall('Question\:(.+?)<',html)[0].replace('=?',''))
            
            post = urllib.urlencode({"captcha":answer})
            html = session.post(page, data=post, headers={'referer':referer, 'Content-type':'application/x-www-form-urlencoded', 'Origin': 'http://www.streamlive.to', 'Host':'www.streamlive.to'}).text
        result = html
        token_url = re.compile('getJSON\("(.+?)"').findall(result)[0]
        r2 = client.request(token_url,referer=referer)
        token = json.loads(r2)["token"]
        log(result)

        file = re.compile('file\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace('.flv','')
        rtmp = re.compile('streamer\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(result)[0].replace(r'\\','\\').replace(r'\/','/')
        app = re.compile('.*.*rtmp://[\.\w:]*/([^\s]+)').findall(rtmp)[0]
        url=rtmp + ' app=' + app + ' playpath=' + file + ' swfUrl=http://www.streamlive.to/ads/streamlive.swf flashver=WIN\\2019,0,0,226 live=1 timeout=15 token=' + token + ' swfVfy=1 pageUrl='+page

        
        return url
    except:
        return
コード例 #18
0
def resolve(url):

    try:

        try:
            referer = urlparse.parse_qs(
                urlparse.urlparse(url).query)['referer'][0]
            url = url.replace(referer,
                              '').replace('?referer=',
                                          '').replace('&referer=', '')
        except:
            referer = url

        id = re.findall('embed/(\d+)', url)[0]
        page = 'http://www.streamlive.to/embedplayer_new2.php?width=620&height=470&channel=%s&autoplay=true' % id

        result = client.request(page,
                                headers={
                                    'referer': 'http://www.streamlive.to',
                                    'Content-type':
                                    'application/x-www-form-urlencoded',
                                    'Origin': 'http://www.streamlive.to',
                                    'Host': 'www.streamlive.to',
                                    'User-agent': client.agent()
                                })
        log(result)

        token_url = re.compile('getJSON\("(.+?)"').findall(result)[0]
        if 'http' not in token_url:
            token_url = 'http:' + token_url
        r2 = client.request(token_url, referer=referer)
        token = json.loads(r2)["token"]

        file = re.compile(
            '(?:[\"\'])?file(?:[\"\'])?\s*:\s*(?:\'|\")(.+?)(?:\'|\")'
        ).findall(result)[0].replace('.flv', '')
        rtmp = re.compile('streamer\s*:\s*(?:\'|\")(.+?)(?:\'|\")').findall(
            result)[0].replace(r'\\', '\\').replace(r'\/', '/')
        app = re.compile('.*.*rtmp://[\.\w:]*/([^\s]+)').findall(rtmp)[0]
        url = rtmp + ' app=' + app + ' playpath=' + file + ' swfUrl=http://www.streamlive.to/ads/streamlive.swf flashver=' + constants.flash_ver(
        ) + ' live=1 timeout=15 token=' + token + ' swfVfy=1 pageUrl=' + page

        return url
    except:
        return
コード例 #19
0
def resolve(url):
    #try:
        
        
        result = client.request(url)
        log(result)
        urls = re.findall('<i?frame.+?src=(?:\'|\")(.+?)(?:\'|\")',result)
        for url in urls:
            if 'player' in url and 'advert' not in url:
                rr = url
                break
        result = client.request(rr)   
        log(result)
        pom = re.findall('.*?url:\s[\'"](\/\/streamaccess\.unas\.tv[^\'"]+\" \+ label \+ \"[^\'"]+).*?', result)[0].replace('" + label + "','laola1tv')
        result = client.request('http:' +pom, referer='http://www.laola1.tv/swf/videoplayer.swf?r=20150305', mobile=True)
        auth,url = re.findall('.*?auth="([^\'"]+)"\s*url="([^\'"]+)".*?',result)[0]
        url = url + '?hdnea='+ auth 
        return url
コード例 #20
0
def resolve(url):
    #try:
        s = requests.Session()
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer= url 


        ref = liveresolver_utils.remove_referer(url)
        result = s.get(url, headers={'Referer':referer,'User-agent':client.agent()}).text
        log(result)
        curl = re.findall('curl\s*=\s*[\"\']([^\"\']+)',result)[0]
        url = base64.b64decode(curl)
        token = json.loads(s.get('http://bro.adcast.tech/getToken.php').text)['token']
        url+=token

        url+='|%s' % urllib.urlencode({'User-agent':client.agent(),'Referer':ref,'X-Requested-With':constants.get_shockwave(),'Host':urlparse.urlparse(url).netloc})
        return url
コード例 #21
0
ファイル: theactionlive.py プロジェクト: stick141/modules4all
def resolve(url):
    #try:
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
    	except: referer = url
    	id = urlparse.parse_qs(urlparse.urlparse(url).query)['id'][0]

        result = client.request('http://theactionlive.com/livegamecr.js', referer=referer)
        log(result)
        url = re.findall('.*\W(\w+.php).*',result)[0]
        page='http://theactionlive.com/'+url+'?id='+id+'&width=620&height=490&stretching='
        result = client.request(page, referer=referer)
        id=re.findall(".*id=['\"]([^\"']+).*",result)[0]
        result = client.request('http://biggestplayer.me/playercr.js', referer=page)
        url = re.findall('.*\W(\w+.php).*',result)[0]
        page2='http://biggestplayer.me/'+url+'?id='+id+'&width=620&height=490'
        result = client.request(page2, referer=page)
        url=re.findall('.*(http[^"\']+\.m3u8[^"\']*).*',result)[0]
        url+='|%s' % urllib.urlencode({'Referer':page2, 'User-agent':client.agent(), 'X-Requested-With':constants.get_shockwave()})

        return url
コード例 #22
0
def resolve(url):
    try:
        try:
            cid  = urlparse.parse_qs(urlparse.urlparse(url).query)['cid'][0] 
        except:
            cid = re.compile('channel/(.+?)(?:/|$)').findall(url)[0]

        
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer='http://castalba.tv'
        
        url = 'http://castalba.tv/embed.php?cid=%s&wh=600&ht=380&r=%s'%(cid,urlparse.urlparse(referer).netloc)
        pageUrl=url

        result = client.request(url, referer=referer,mobile=True)
        result = decryptionUtils.doDemystify(result)
        result=urllib.unquote(result)
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)

        if 'm3u8' in result:
            url = re.compile('(?:var\s*)?file.+?\s*=\s*(?:unescape\()[\'\"](.+?)[\'\"]').findall(result)[-1]
            url = 'http://' + url + '.m3u8'
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': url,'X-Requested-With':constants.get_shockwave()})
            log("Castalba: Found m3u8 url: " + url)
            
        else:
            try:
                filePath = re.compile("'file'\s*:\s*(?:unescape\()?'(.+?)'").findall(result)[0]
                
            except:
                file = re.findall('(?:var\s*)?file\s*=\s*(?:unescape\()?(?:\'|\")(.+?)(?:\'|\")',result)[-1]
                try:
                    file2 = re.findall("'file':\s*unescape\(file\)\s*\+\s*unescape\('(.+?)'\)",result)[0]
                    filePath = file+file2
                except:
                    filePath = file
            swf = re.compile("'flashplayer'\s*:\s*\"(.+?)\"").findall(result)[0]
            
            sm = re.findall("'streamer':(.+?),",result)[0]
            strm_funcs = re.findall('function\s*(.+?)\s*\{([^\}]+)',result,flags=re.DOTALL)
            for f in strm_funcs:
                if f[0] in ['(p,a,c,k,e,r)','()']:
                    continue
                if '%s'%f[0] in sm:
                    strm_func = f[1]
                    break
            strm_func = re.sub('\s//[^;]+','',strm_func)
            streamer = 'rtmp://' +  re.findall('.*["\'/](\d{1,3}\.\d{1,3}\.\d{1,3}\.[^"\'/]+)["\'/]',strm_func)[0] + '/live'
            streamer = streamer.replace('///','//')
            url = streamer  + ' playpath=' + filePath +' swfUrl=' + swf + ' flashver=' + constants.flash_ver() +' live=true timeout=15 swfVfy=true pageUrl=' + pageUrl
            log("Castalba: Found rtmp link: " + url)

        return url
    
    except:
        log("Castalba: Resolver failed. Returning...")
        return
コード例 #23
0
ファイル: castalba.py プロジェクト: padron5516/GOTbuild
def resolve(url):
    try:
        try:
            cid  = urlparse.parse_qs(urlparse.urlparse(url).query)['cid'][0] 
        except:
            cid = re.compile('channel/(.+?)(?:/|$)').findall(url)[0]

        
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer='http://castalba.tv'
        
        url = 'http://castalba.tv/embed.php?cid=%s&wh=600&ht=380&r=%s'%(cid,urlparse.urlparse(referer).netloc)
        pageUrl=url

        result = client.request(url, referer=referer,mobile=True)
        result=urllib.unquote(result)

        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)


        if 'm3u8' in result:
            url = re.compile('file.+?\s*=\s*(?:unescape\()[\'\"](.+?)[\'\"]').findall(result)[0]
            url = 'http://' + url + '.m3u8'
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': referer})
            log("Castalba: Found m3u8 url: " + url)
            
        else:
            try:
                filePath = re.compile("'file'\s*:\s*(?:unescape\()?'(.+?)'").findall(result)[0]
                
            except:
                file = re.findall('var file\s*=\s*(?:unescape\()?(?:\'|\")(.+?)(?:\'|\")',result)[0]
                try:
                    file2 = re.findall("'file':\s*unescape\(file\)\s*\+\s*unescape\('(.+?)'\)",result)[0]
                    filePath = file+file2
                except:
                    filePath = file
            swf = re.compile("'flashplayer'\s*:\s*\"(.+?)\"").findall(result)[0]
            
            strm_func = re.findall('function streamer\(\)\s*\{([^\{]+)',result)[0]
            strm_func = re.sub('\s//[^;]+','',strm_func)

            streamer = re.findall('return\s*([^;]+)',strm_func)[0]
            for v in var_dict.keys():
                streamer = streamer.replace(v,var_dict[v])

            streamer = streamer.replace('"','').replace("'",'').replace('+','').strip()

            url = streamer.replace('///','//') + ' playpath=' + filePath +' swfUrl=' + swf + ' flashver=' + constants.flash_ver() +' live=true timeout=15 swfVfy=1 pageUrl=' + pageUrl
            log("Castalba: Found rtmp link: " + url)

        return url
    
    except:
        log("Castalba: Resolver failed. Returning...")
        return
コード例 #24
0
ファイル: finecast.py プロジェクト: stick141/modules4all
def resolve(url):
    #try:
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer=url


        id = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
        cj = get_cj()
        url = 'http://www.finecast.tv/embed4.php?u=%s&vw=640&vh=450'%id
        rs = client.request(url,referer=referer,cj=cj)
        sitekey = re.findall('data-sitekey="([^"]+)', rs)[0]
        token = recaptcha_v2.UnCaptchaReCaptcha().processCaptcha(sitekey, lang='de')
        #1:04
        result =client.request (url, post=urllib.urlencode(token),referer=referer)
        log(result)

        file = re.findall('[\'\"](.+?.stream)[\'\"]',result)[0]
        auth = re.findall('[\'\"](\?wmsAuthSign.+?)[\'\"]',result)[0]
        rtmp = 'http://play.finecast.tv:1935/live/%s/playlist.m3u8%s'%(file,auth)

        return rtmp
コード例 #25
0
def resolve(url):
    #try:
    try:
        referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
    except:
        referer = url

    id = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0]
    cj = get_cj()
    url = 'http://www.finecast.tv/embed4.php?u=%s&vw=640&vh=450' % id
    rs = client.request(url, referer=referer, cj=cj)
    sitekey = re.findall('data-sitekey="([^"]+)', rs)[0]
    token = recaptcha_v2.UnCaptchaReCaptcha().processCaptcha(sitekey,
                                                             lang='de')
    #1:04
    result = client.request(url, post=urllib.urlencode(token), referer=referer)
    log(result)

    file = re.findall('[\'\"](.+?.stream)[\'\"]', result)[0]
    auth = re.findall('[\'\"](\?wmsAuthSign.+?)[\'\"]', result)[0]
    rtmp = 'http://play.finecast.tv:1935/live/%s/playlist.m3u8%s' % (file,
                                                                     auth)

    return rtmp
コード例 #26
0
ファイル: filmon.py プロジェクト: GenieTv/Genie_Tv
def resolve(url):
    try:
        if '/vod/' in url:
            url = re.compile('/(\d+)').findall(url)[-1]
            url = 'http://www.filmon.com/vod/info/%s' % url
        elif '/tv/' in url:
            url = url.replace('/tv/', '/channel/')
        elif not '/channel/' in url:
            raise Exception()


        headers = {'X-Requested-With': 'XMLHttpRequest'}

        log('Filmon: Getting cookie...')
        cookie = client.request(url, output='cookie')
        
        log('Filmon: Getting channel id...')
        cid = client.request(url, headers=headers)
        cid = json.loads(cid)['id']
        

        headers = {'X-Requested-With': 'XMLHttpRequest', 'Referer': url}

        url = 'http://www.filmon.com/ajax/getChannelInfo?channel_id=%s' % cid

        log('Filmon: Getting streams...')
        result = client.request(url, cookie=cookie, headers=headers)

        result = json.loads(result)
        try:
            result = result['streams']
        except:
            result = result['data']['streams']
            result = [i[1] for i in result.items()]

        log('Filmon: Selecting stream url...')
        url = [(i['url'], int(i['watch-timeout'])) for i in result]
        url = [i for i in url if '.m3u8' in i[0]]
        
        url.sort()
        url = url[-1][0]

        return url
    except:
        return
コード例 #27
0
def resolve(url):
    try:
        try:
            cid  = urlparse.parse_qs(urlparse.urlparse(url).query)['cid'][0] 
        except:
            cid = re.compile('channel/(.+?)(?:/|$)').findall(url)[0]

        
        try:
            referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except:
            referer='http://castalba.tv'
        
        url = 'http://castalba.tv/embed.php?cid=%s&wh=600&ht=380&r=%s'%(cid,urlparse.urlparse(referer).netloc)
        pageUrl=url

        result = client.request(url, referer=referer)
        result=urllib.unquote(result)
        if 'm3u8' in result:
            url = re.compile('filez\s*=\s*(?:unescape\()\'(.+?)\'').findall(result)[0]
            url = 'http://' + url + '.m3u8'
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': referer})
            log("Castalba: Found m3u8 url: " + url)
            
        else:
            try:
                filePath = re.compile("'file'\s*:\s*(?:unescape\()?'(.+?)'").findall(result)[0]
                
            except:
                file = re.findall('var file\s*=\s*(?:unescape\()?(?:\'|\")(.+?)(?:\'|\")',result)[0]
                try:
                    file2 = re.findall("'file':\s*unescape\(file\)\s*\+\s*unescape\('(.+?)'\)",result)[0]
                    filePath = file+file2
                except:
                    filePath = file
            swf = re.compile("'flashplayer'\s*:\s*\"(.+?)\"").findall(result)[0]
            try:
                streamer=re.findall('streamer\(\)\s*\{\s*return \'(.+?)\';\s*\}',result)[0]
                if 'rtmp' not in streamer:
                    streamer = 'rtmp://' + streamer
            except:
                try:
                    streamer = re.compile("var sts\s*=\s*'(.+?)'").findall(result)[0]
                except:
                    streamer=re.findall('streamer\(\)\s*\{\s*return \'(.+?)\';\s*\}',result)[0]
              
            url = streamer.replace('///','//') + ' playpath=' + filePath +' swfUrl=' + swf + ' flashver=WIN\\2020,0,0,286 live=true timeout=15 swfVfy=1 pageUrl=' + pageUrl
            log("Castalba: Found rtmp link: " + url)

        return url
    
    except:
        log("Castalba: Resolver failed. Returning...")
        return
コード例 #28
0
def resolve(url):
    try:
        if '/vod/' in url:
            url = re.compile('/(\d+)').findall(url)[-1]
            url = 'http://www.filmon.com/vod/info/%s' % url
        elif '/tv/' in url:
            url = url.replace('/tv/', '/channel/')
        elif not '/channel/' in url:
            raise Exception()

        headers = {'X-Requested-With': 'XMLHttpRequest'}

        log('Filmon: Getting cookie...')
        cookie = client.request(url, output='cookie')

        log('Filmon: Getting channel id...')
        cid = client.request(url, headers=headers)
        cid = json.loads(cid)['id']

        headers = {'X-Requested-With': 'XMLHttpRequest', 'Referer': url}

        url = 'http://www.filmon.com/ajax/getChannelInfo?channel_id=%s' % cid

        log('Filmon: Getting streams...')
        result = client.request(url, cookie=cookie, headers=headers)

        result = json.loads(result)
        try:
            result = result['streams']
        except:
            result = result['data']['streams']
            result = [i[1] for i in result.items()]

        log('Filmon: Selecting stream url...')
        url = [(i['url'], int(i['watch-timeout'])) for i in result]
        url = [i for i in url if '.m3u8' in i[0]]

        url.sort()
        url = url[-1][0]

        return url
    except:
        return
コード例 #29
0
ファイル: zerocast.py プロジェクト: bopopescu/plugins
def resolve(url):
    #try:
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = 'http://zerocast.tv/channels'
        if 'chan=' in url:
            result = client.request(url, referer=referer)
            log(result)
            log('banana')
            url = re.findall('<script\stype=[\'"]text/javascript[\'"]\ssrc=[\'"](.+?)[\'"]>', result)[0]

        log('bina2')
        r = re.findall('.+?a=([0-9]+)', url)[0]

        url = 'http://zerocast.tv/embed.php?a=%s&id=&width=640&height=480&autostart=true&strech=exactfit' % r

        result = client.request(url, referer=referer)
        unpacked = ''
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        r = re.findall('curl\s*=\s*[\'"](.+?)[\'"]', result)
        r += re.findall('file\s*:\s*["\'](.+?)["\']', result)
        r = r[0].decode('base64', 'strict')

        #if r.startswith('rtmp'):
        #    return '%s pageUrl=%s live=1 swfUrl=http://p.jwpcdn.com/6/12/jwplayer.flash.swf flashver=' % (r, url) + constants.flash_ver() + ' swfVfy=1 timeout=10'

        if '.m3u8' in r:
            chunk = client.request(r)
            chunk = re.compile('(chunklist_.+)').findall(chunk)[0]
            url = r.split('.m3u8')[0].rsplit('/', 1)[0] + '/' + chunk
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent()})
            return url
コード例 #30
0
def resolve(url):
    try:

        page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0]
        
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = page
        try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0]
        except: host = 'www.sawlive.tv'
        page = 'http://sawlive.tv/embed/%s' % (page[1])
        headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'}
        result = client.request(page, referer=referer, headers = headers)
        
        unpacked = ''
        
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = decryptionUtils.doDemystify(result)
        
        result = urllib.unquote_plus(result)
        r2 = result
        resul = None
        try:
            url = client.parseDOM(result, 'iframe', ret='src')[-1]
        except:
            result = unpacked
            try:
                url = client.parseDOM(result, 'iframe', ret='src')[-1]
                var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
                var_dict = dict(var)       
                
                for v in var_dict.keys():
                    url = url.replace(v,var_dict[v])
                url = url.replace('\'','').replace('\"','').replace('+','').replace(' ','')
                resul = client.request(url, headers = headers)
            except:
                pass
        
        if resul is None:
            aaa = r2.replace('var ','').replace('\' ','\' +').replace(' \'','+ \'')

            aaa = aaa.replace('document.write(','result =').replace('\');','\'')
            aaa = re.sub('function.+?\(\)[^}]+}\s*','',aaa)
            aaa = re.sub('=([^\'\"\s]+)\s*([^\'\";]+);',r'=\1+\2;',aaa)
            aaa = aaa.replace('"\' +swidth+ \'"','')
            aaa = aaa.replace('"\' +sheight+ \'"','')
            aaa = re.sub('([^+])\s([^+])',r'\1+\2',aaa)
            exec(aaa)
            result = urllib.unquote_plus(result)
            url = client.parseDOM(result, 'iframe', ret='src')[-1]
            result = client.request(url, headers = headers)
        else:
            result = resul
        unpacked = ''
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = urllib.unquote_plus(result)
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result)
        var_dict = dict(var)       
        file = re.compile("'file'\s*(.+?)\)").findall(result)[0]
        file = file.replace('\'','')
            
        for v in var_dict.keys():
            file = file.replace(v,var_dict[v])
        file = file.replace('+','').replace(',','').strip().replace(' ', '')
        log("Sawlive: Found file url: " + file)
        if 'f4m' in file:
            return file
        try:
            log("Sawlive: Finding m3u8 link.")
            if not file.startswith('http'): raise Exception()
            url = client.request(file, output='geturl')
            if not '.m3u8' in url: raise Exception()
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file})
            log("Sawlive: Found m3u8 link: " + url)
            return url
        except:
            log("Sawlive: m3u8 link not found, finding rtmp.")
            pass
        strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0]
        strm = strm.replace('\'','')
        for v in var_dict.keys():
            strm = strm.replace(v,var_dict[v])
        strm = strm.replace('+','').replace(',','').strip().replace(' ', '')
        swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '')

        url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url)
        url = urllib.unquote(url).replace('unescape(','')

        for r in rplcs:
            url = url.replace(r[1],r[2])
        log("Sawlive: rtmp link found: " + url)
        return url
    except Exception as e:
        log("Sawlive exception:\n" + str(e))
        log("Sawlive: Resolver failed. Returning...")
        return
コード例 #31
0
ファイル: streamlive.py プロジェクト: stick141/modules4all
def login(cookies,post_data):
    log('Streamlive: Making new login token.')
    cj = client.request('http://www.streamlive.to/login.php', post=post_data, headers = {'referer':'http://www.streamlive.to/login', 'Content-type':'application/x-www-form-urlencoded', 'Origin': 'http://www.streamlive.to', 'Host':'www.streamlive.to', 'User-agent':client.agent()},cj=cookies,output='cj')
    return cj
コード例 #32
0
ファイル: sawlive.py プロジェクト: c0ns0le/YCBuilds
def resolve(url):
    try:

        page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0]
        page = 'http://%s/embed/%s' % (page[0], page[1])
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = page
        try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0]
        except: host = 'sawlive.tv'

        headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'}
        
        result = client.request(page, referer=referer)
        
        result = decryptionUtils.doDemystify(result)
        url = client.parseDOM(result, 'iframe', ret='src')[-1]
        url = url.replace(' ', '').replace('+','')
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        for i in range(100):
            for v in var: result = result.replace(" %s " % v[0], ' %s '%v[1])
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)
        for v in var:
            if '+' in v[1]:
                ss = v[1].rstrip('+').replace('"+','').split('+')
                sg = v[1].rstrip('+').replace('"+','')
                for s in ss:
                    sg = sg.replace(s, var_dict[s])
                var_dict[v[0]]=sg.replace('+','')
        for i in range(100):
            for v in var_dict.keys(): url = url.replace("'%s'" % v, var_dict[v])
            for v in var_dict.keys(): url = url.replace("(%s)" % v, "(%s)" % var_dict[v])
        
        
        result = client.request(url, headers = headers)
        result = decryptionUtils.doDemystify(result)
        
        file = re.compile("'file'.+?'(.+?)'").findall(result)[0]
        log("Sawlive: Found file url: " + file)
        try:
            log("Sawlive: Finding m3u8 link.")
            if not file.startswith('http'): raise Exception()
            url = client.request(file, output='geturl')
            if not '.m3u8' in url: raise Exception()
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file})
            log("Sawlive: Found m3u8 link: " + url)
            return url
        except:
            log("Sawlive: m3u8 link not found, finding rtmp.")
            pass

        strm = re.compile("'streamer'.+?'(.+?)'").findall(result)[0]
        swf = re.compile("SWFObject\('(.+?)'").findall(result)[0]

        url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=30' % (strm, file, swf, url)
        url = urllib.unquote(url)
        log("Sawlive: rtmp link found: " + url)
        return url
    except Exception as e:
        log("Sawlive exception:\n" + str(e))
        log("Sawlive: Resolver failed. Returning...")
        return
コード例 #33
0
ファイル: sawlive.py プロジェクト: stick141/modules4all
def resolve(url):
    try:

        page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0]
        
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = page
        try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0]
        except: host = 'www.sawlive.tv'
        page = 'http://sawlive.tv/embed/%s' % (page[1])
        headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'}
        result = client.request(page, referer=referer, headers = headers)
        
        unpacked = ''
        
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = urllib.unquote_plus(result)
        r2 = result
        resul = None
        try:
            url = client.parseDOM(result, 'iframe', ret='src')[-1]
        except:
            result = unpacked
            try:
                url = client.parseDOM(result, 'iframe', ret='src')[-1]
                var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
                var_dict = dict(var)       
                
                for v in var_dict.keys():
                    url = url.replace(v,var_dict[v])
                url = url.replace('\'','').replace('\"','').replace('+','').replace(' ','')
                resul = client.request(url, headers = headers)
            except:
                pass
        
        if resul is None:
            #aaa = r2.replace('var ','').replace('\' ','\' +').replace(' \'','+ \'')

            aaa = r2.replace('document.write(',' var result =').replace('\');','\'')
            aaa = aaa.replace('"\' +swidth+ \'"','')
            aaa = aaa.replace('"\' +sheight+ \'"','')
            aaa = re.sub('([^+\s])\s([^+\s])',r'\1+\2',aaa)
            aaa = aaa.replace('function+','function ')
            aaa = aaa.replace('var+','var ')
            aaa = aaa.replace('result+','result ')
            import js2py
            context = js2py.EvalJs()
            context.swidth = '400'
            context.sheight = '400'
            context.execute(aaa)
            result = context.result
            result = urllib.unquote_plus(result)
            url = client.parseDOM(result, 'iframe', ret='src')[-1]
            result = client.request(url, headers = headers)
        else:
            result = resul
        unpacked = ''
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = urllib.unquote_plus(result)
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result)
        var_dict = dict(var)       
        file = re.compile("'file'\s*(.+?)\)").findall(result)[0]
        file = file.replace('\'','')
            
        for v in var_dict.keys():
            file = file.replace(v,var_dict[v])
        file = file.replace('+','').replace(',','').strip().replace(' ', '')
        log("Sawlive: Found file url: " + file)
        if 'f4m' in file:
            return file
        try:
            log("Sawlive: Finding m3u8 link.")
            if not file.startswith('http'): raise Exception()
            url = client.request(file, output='geturl')
            if not '.m3u8' in url: raise Exception()
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file})
            log("Sawlive: Found m3u8 link: " + url)
            return url
        except:
            log("Sawlive: m3u8 link not found, finding rtmp.")
            pass
        strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0]
        strm = strm.replace('\'','')
        for v in var_dict.keys():
            strm = strm.replace(v,var_dict[v])
        strm = strm.replace('+','').replace(',','').strip().replace(' ', '')
        swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '')

        url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url)
        url = urllib.unquote(url).replace('unescape(','')

        for r in rplcs:
            url = url.replace(r[1],r[2])
        log("Sawlive: rtmp link found: " + url)
        return url
    except Exception as e:
        log("Sawlive exception:\n" + str(e))
        log("Sawlive: Resolver failed. Returning...")
        return
コード例 #34
0
ファイル: sawlive.py プロジェクト: tvspeler/SportStreams
def resolve(url):
    try:

        page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0]
        page = 'http://%s/embed/%s' % (page[0], page[1])
        try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0]
        except: referer = page
        try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0]
        except: host = 'sawlive.tv'

        headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'}
        
        result = client.request(page, referer=referer)
        
        unpacked = ''
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = urllib.unquote_plus(result)
        rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result)
        url = client.parseDOM(result, 'iframe', ret='src')[-1]
        url = url.replace(' ', '').replace('+','')
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        for i in range(100):
            for v in var: result = result.replace(" %s " % v[0], ' %s '%v[1])
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)

        for v in var:
            if '+' in v[1]:
                ss = v[1].rstrip('+').replace('"+','').split('+')
                sg = v[1].rstrip('+').replace('"+','')
                for s in ss:
                    sg = sg.replace(s, var_dict[s])
                var_dict[v[0]]=sg.replace('+','')
                
        for i in range(100):
            for v in var_dict.keys(): url = url.replace("'%s'" % v, var_dict[v])
            for v in var_dict.keys(): url = url.replace("(%s)" % v, "(%s)" % var_dict[v])
        
        url = url.replace(' ', '').replace('+','').replace('"','').replace('\'','')
        for r in rplcs:
            url = url.replace(r[1],r[2])
        result = client.request(url, headers = headers, mobile=True)
        unpacked = ''
        packed = result.split('\n')
        for i in packed:
            try:
                unpacked += jsunpack.unpack(i)
            except:
                pass
        result += unpacked
        result = urllib.unquote_plus(result)
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result)
        var_dict = dict(var)       
        file = re.compile("'file'\s*(.+?)\)").findall(result)[0]
        file = file.replace('\'','')
            
        for v in var_dict.keys():
            file = file.replace(v,var_dict[v])
        file = file.replace('+','').replace(',','').strip().replace(' ', '')
        log("Sawlive: Found file url: " + file)
        if 'f4m' in file:
            return file
        try:
            log("Sawlive: Finding m3u8 link.")
            if not file.startswith('http'): raise Exception()
            url = client.request(file, output='geturl')
            if not '.m3u8' in url: raise Exception()
            url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file})
            log("Sawlive: Found m3u8 link: " + url)
            return url
        except:
            log("Sawlive: m3u8 link not found, finding rtmp.")
            pass
        strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0]
        strm = strm.replace('\'','')
        for v in var_dict.keys():
            strm = strm.replace(v,var_dict[v])
        strm = strm.replace('+','').replace(',','').strip().replace(' ', '')
        swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '')

        url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url)
        url = urllib.unquote(url).replace('unescape(','')

        for r in rplcs:
            url = url.replace(r[1],r[2])
        log("Sawlive: rtmp link found: " + url)
        return url
    except Exception as e:
        log("Sawlive exception:\n" + str(e))
        log("Sawlive: Resolver failed. Returning...")
        return
コード例 #35
0
def resolve(url):
    try:
        try:
            cid = urlparse.parse_qs(urlparse.urlparse(url).query)['cid'][0]
        except:
            cid = re.compile('channel/(.+?)(?:/|$)').findall(url)[0]

        try:
            referer = urlparse.parse_qs(
                urlparse.urlparse(url).query)['referer'][0]
        except:
            referer = 'http://castalba.tv'

        url = 'http://castalba.tv/embed.php?cid=%s&wh=600&ht=380&r=%s' % (
            cid, urlparse.urlparse(referer).netloc)
        pageUrl = url

        result = client.request(url, referer=referer)
        result = urllib.unquote(result)
        if 'm3u8' in result:
            url = re.compile('filez\s*=\s*(?:unescape\()\'(.+?)\'').findall(
                result)[0]
            url = 'http://' + url + '.m3u8'
            url += '|%s' % urllib.urlencode({
                'User-Agent': client.agent(),
                'Referer': referer
            })
            log("Castalba: Found m3u8 url: " + url)

        else:
            try:
                filePath = re.compile(
                    "'file'\s*:\s*(?:unescape\()?'(.+?)'").findall(result)[0]

            except:
                file = re.findall(
                    'var file\s*=\s*(?:unescape\()?(?:\'|\")(.+?)(?:\'|\")',
                    result)[0]
                try:
                    file2 = re.findall(
                        "'file':\s*unescape\(file\)\s*\+\s*unescape\('(.+?)'\)",
                        result)[0]
                    filePath = file + file2
                except:
                    filePath = file
            swf = re.compile("'flashplayer'\s*:\s*\"(.+?)\"").findall(
                result)[0]
            try:
                streamer = re.findall(
                    'streamer\(\)\s*\{\s*return \'(.+?)\';\s*\}', result)[0]
                if 'rtmp' not in streamer:
                    streamer = 'rtmp://' + streamer
            except:
                try:
                    streamer = re.compile("var sts\s*=\s*'(.+?)'").findall(
                        result)[0]
                except:
                    streamer = re.findall(
                        'streamer\(\)\s*\{\s*return \'(.+?)\';\s*\}',
                        result)[0]

            url = streamer.replace(
                '///', '//'
            ) + ' playpath=' + filePath + ' swfUrl=' + swf + ' flashver=WIN\\2020,0,0,286 live=true timeout=15 swfVfy=1 pageUrl=' + pageUrl
            log("Castalba: Found rtmp link: " + url)

        return url

    except:
        log("Castalba: Resolver failed. Returning...")
        return
コード例 #36
0
ファイル: sawlive.py プロジェクト: AMOboxTV/AMOBox.LegoBuild
def resolve(url):
    try:

        page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(
            url)[0]
        page = 'http://%s/embed/%s' % (page[0], page[1])
        try:
            referer = urlparse.parse_qs(
                urlparse.urlparse(url).query)['referer'][0]
        except:
            referer = page
        try:
            host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0]
        except:
            host = 'sawlive.tv'

        headers = {
            'User-Agent': client.agent(),
            'Host': host,
            'Referer': referer,
            'Connection': 'keep-alive'
        }

        result = client.request(page, referer=referer)

        result = decryptionUtils.doDemystify(result)
        url = client.parseDOM(result, 'iframe', ret='src')[-1]
        url = url.replace(' ', '').replace('+', '')
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        for i in range(100):
            for v in var:
                result = result.replace(" %s " % v[0], ' %s ' % v[1])
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)

        for v in var:
            if '+' in v[1]:
                ss = v[1].rstrip('+').replace('"+', '').split('+')
                sg = v[1].rstrip('+').replace('"+', '')
                for s in ss:
                    sg = sg.replace(s, var_dict[s])
                var_dict[v[0]] = sg.replace('+', '')

        for i in range(100):
            for v in var_dict.keys():
                url = url.replace("'%s'" % v, var_dict[v])
            for v in var_dict.keys():
                url = url.replace("(%s)" % v, "(%s)" % var_dict[v])

        result = client.request(url, headers=headers)
        result = decryptionUtils.doDemystify(result)
        var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result)
        var_dict = dict(var)
        file = re.compile("'file'\s*(.+?)\)").findall(result)[0]
        file = file.replace('\'', '')
        for v in var_dict.keys():
            file = file.replace(v, var_dict[v])
        file = file.replace('+', '').replace(',', '').strip()
        log("Sawlive: Found file url: " + file)
        try:
            log("Sawlive: Finding m3u8 link.")
            if not file.startswith('http'): raise Exception()
            url = client.request(file, output='geturl')
            if not '.m3u8' in url: raise Exception()
            url += '|%s' % urllib.urlencode({
                'User-Agent': client.agent(),
                'Referer': file
            })
            log("Sawlive: Found m3u8 link: " + url)
            return url
        except:
            log("Sawlive: m3u8 link not found, finding rtmp.")
            pass
        strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0]
        strm = strm.replace('\'', '')
        for v in var_dict.keys():
            strm = strm.replace(v, var_dict[v])
        strm = strm.replace('+', '').replace(',', '').strip()
        swf = re.compile("SWFObject\('(.+?)'").findall(result)[0]

        url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (
            strm, file, swf, url)
        url = urllib.unquote(url).replace('unescape(', '')
        log("Sawlive: rtmp link found: " + url)
        return url
    except Exception as e:
        log("Sawlive exception:\n" + str(e))
        log("Sawlive: Resolver failed. Returning...")
        return