def get_amf(url, service, *args): # AMF remoting #gateway = RemotingService(url, pyamf.AMF0, user_agent='Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31') r = None for i in range(10): DBG('attempt', i) squid = tm.choose_proxy(url) DBG('proxy', squid['name']) gateway = RemotingService(url, pyamf.AMF0, user_agent='Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31', opener=urlopen_with_timeout) #gateway.setProxy('10.8.0.10:8888') gateway.setProxy('%s:%s' % (squid['ip'], int(squid['port']))) service_handle = gateway.getService(service) try: r = service_handle(*args) if r == '': print 'amf empty result', url, service, args ERR('amf empty result', url, service, args) continue break except: print 'amf failure', url, service, args, traceback.format_exc() ERR('amf failure', url, service, args, traceback.format_exc()) if r == None: ERR(' *************** retry count exceeded', url, service, args) return r
def findMediaById(self, playerId, videoPlayer, publisherId, userAgent, amfVersion = pyamf.AMF3, **kwargs): client = RemotingService(self._amfUrl, user_agent = userAgent, amf_version = amfVersion) for k, v in kwargs.iteritems(): if k == 'headers': for header in v: client.addHTTPHeader(header[0], header[1]) if k == 'proxy': client.setProxy(v) service = client.getService(self._serviceName) return service.findMediaById(self._token, playerId, videoPlayer, publisherId)
def getBrightCoveData(self, playerId, userAgent, amfVersion = pyamf.AMF3, **kwargs): client = RemotingService(self._amfUrl, user_agent = userAgent, amf_version = amfVersion) for k, v in kwargs.iteritems(): if k == 'headers': for header in v: client.addHTTPHeader(header[0], header[1]) if k == 'proxy': client.setProxy(v) service = client.getService(self._serviceName) return service.getProgrammingForExperience(self._token, playerId)
def getBrightCoveData(self, playerId, userAgent, amfVersion=pyamf.AMF3, **kwargs): client = RemotingService(self._amfUrl, user_agent=userAgent, amf_version=amfVersion) for k, v in kwargs.iteritems(): if k == 'headers': for header in v: client.addHTTPHeader(header[0], header[1]) if k == 'proxy': client.setProxy(v) service = client.getService(self._serviceName) return service.getProgrammingForExperience(self._token, playerId)
def findMediaById(self, playerId, videoPlayer, publisherId, userAgent, amfVersion=pyamf.AMF3, **kwargs): client = RemotingService(self._amfUrl, user_agent=userAgent, amf_version=amfVersion) for k, v in kwargs.iteritems(): if k == 'headers': for header in v: client.addHTTPHeader(header[0], header[1]) if k == 'proxy': client.setProxy(v) service = client.getService(self._serviceName) return service.findMediaById(self._token, playerId, videoPlayer, publisherId)
def get_clip_info(self, contentID, url): serviceUrl = "http://c.brightcove.com/services/messagebroker/amf?playerId=" + self.urls['playerID'] serviceName = "com.brightcove.experience.ExperienceRuntimeFacade" proxy = Proxy() client = RemotingService(serviceUrl, amf_version=3, user_agent=webpage().fullagent('chrome')) client.setProxy(proxy.httpProxyString, type='http') service = client.getService(serviceName) pyamf.register_class(ViewerExperienceRequest, 'com.brightcove.experience.ViewerExperienceRequest') pyamf.register_class(ContentOverride, 'com.brightcove.experience.ContentOverride') content_override = ContentOverride(contentId=float("nan"), contentRefId=str(contentID)) viewer_exp_req = ViewerExperienceRequest(url, [content_override], int(self.urls['playerID']), "") response = service.getDataForExperience(self.urls['const'], viewer_exp_req) #self._printResponse(response) return response['programmedContent']['videoPlayer']['mediaDTO']['renditions']