class AllmyvideosResolver(object): name = "allmyvideos" domains = ["allmyvideos.net"] pattern = '(?://|\.)(allmyvideos\.net)/(?:embed-)?([0-9a-zA-Z]+)' def __init__(self): self.net = Net() url = str(sys.argv[1]) host = self.get_host_and_id(url)[0] media_id = self.get_host_and_id(url)[1] return self.get_media_url(host, media_id) def get_host_and_id(self, url): r = re.search(self.pattern, url, re.I) if r: return r.groups() else: return False def get_media_url(self, host, media_id): url = self.get_url1st(host, media_id) headers = {'User-Agent': common.IE_USER_AGENT, 'Referer': url} html = self.net.http_GET(url, headers=headers).content stream_url = self.__get_best_source(html) if stream_url: # xbmc.sleep(2000) print stream_url url = self.get_url(host, media_id) headers = {'User-Agent': common.IE_USER_AGENT, 'Referer': url} html = self.net.http_GET(url, headers=headers).content data = helpers.get_hidden(html) html = self.net.http_POST(url, data, headers=headers).content stream_url = self.__get_best_source(html) if stream_url: # xbmc.sleep(2000) print stream_url def __get_best_source(self, html): r = re.search('"sources"\s*:\s*(\[.*?\])', html, re.DOTALL) if r: sources = json.loads(r.group(1)) max_label = 0 stream_url = '' for source in sources: if 'label' in source and int(re.sub('[^0-9]', '', source['label'])) > max_label: stream_url = source['file'] max_label = int(re.sub('[^0-9]', '', source['label'])) if stream_url: stream_url = '%s?%s&direct=false&ua=false' % (stream_url.split('?')[0], urlparse.urlparse(stream_url).query) return stream_url + '|' + urllib.urlencode({'User-Agent': common.IE_USER_AGENT}) def get_url(self, host, media_id): return 'http://allmyvideos.net/%s' % media_id def get_url1st(self, host, media_id): return 'http://allmyvideos.net/embed-%s.html' % media_id
class BriskfileResolver(object): name = "briskfile" domains = ["briskfile.com"] pattern = '(?://|\.)(briskfile\.com)/(?:l|e)/([0-9A-Za-z\-]+)' def __init__(self): self.net = Net() url = str(sys.argv[1]) host = self.get_host_and_id(url)[0] media_id = self.get_host_and_id(url)[1] return self.get_media_url(host, media_id) def get_host_and_id(self, url): r = re.search(self.pattern, url, re.I) if r: return r.groups() else: return False def get_media_url(self, host, media_id): web_url = self.get_url(host, media_id) headers = {'User-Agent': common.FF_USER_AGENT} html = self.net.http_GET(web_url, headers=headers).content match = re.search('''val\(\)\s*\+\s*['"]([^"']+)''', html) suffix = match.group(1) if match else '' data = helpers.get_hidden(html) for name in data: data[name] = data[name] + suffix headers['Referer'] = web_url html = self.net.http_POST(web_url, form_data=data, headers=headers).content html = re.compile( r'clip\s*:\s*\{.*?(?:url|src)\s*:\s*[\"\'](.+?)[\"\']', re.DOTALL).search(html) if not html: print 'File Not Found or removed' stream_url = html.group(1) req = urllib2.Request(stream_url) for key in headers: req.add_header(key, headers[key]) stream_url = urllib2.urlopen(req).geturl() print stream_url + '|User-Agent=%s&Referer=%s' % (common.FF_USER_AGENT, web_url) def get_url(self, host, media_id): return 'http://www.briskfile.com/l/%s' % (media_id)
class StreamcloudResolver(object): name = "streamcloud" domains = ["streamcloud.eu"] pattern = '(?://|\.)(streamcloud\.eu)/([0-9a-zA-Z]+)' def __init__(self): self.net = Net() url = str(sys.argv[1]) host = self.get_host_and_id(url)[0] media_id = self.get_host_and_id(url)[1] return self.get_media_url(host, media_id) def get_host_and_id(self, url): r = re.search(self.pattern, url, re.I) if r: return r.groups() else: return False def get_media_url(self, host, media_id): web_url = self.get_url(host, media_id) resp = self.net.http_GET(web_url) html = resp.content post_url = resp.get_url() if re.search('>(File Not Found)<', html): print 'File Not Found or removed' form_values = {} for i in re.finditer('<input.*?name="(.*?)".*?value="(.*?)">', html): form_values[i.group(1)] = i.group(2).replace( "download1", "download2") html = self.net.http_POST(post_url, form_data=form_values).content r = re.search('file: "(.+?)",', html) if r: print r.group(1) def get_url(self, host, media_id): return 'http://streamcloud.eu/%s' % (media_id)