def GetRemotingService(self, key, serviceName): logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-5.5s [%(name)s] %(message)s') headers = self.GetHeaders() client = RemotingService(c_brightcove + "/services/messagebroker/amf?playerKey=" + key.encode("ascii"), amf_version=3,logger=logging, user_agent=headers['User-Agent']) if self.httpManager.GetIsForwardedForIP(): forwardedIP = self.httpManager.GetForwardedForIP() client.addHeader(u'X-Forwarded-For', forwardedIP) # Connect to the Brightcove AMF service service = client.getService(serviceName) return service
def GetRemotingService(self, key, serviceName): #logger.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-5.5s [%(name)s] %(message)s') headers = self.GetHeaders() client = RemotingService(c_brightcove + "/services/messagebroker/amf?playerKey=" + key.encode("ascii"), amf_version=3,logger=logger, user_agent=headers['User-Agent']) if self.httpManager.GetIsForwardedForIP(): forwardedIP = self.httpManager.GetForwardedForIP() client.addHeader(u'X-Forwarded-For', forwardedIP) # Connect to the Brightcove AMF service service = client.getService(serviceName) return service
def get_rtmpdump_info(domain, token, track, flash_url=None): '''Return a tuple of (app ID, RTMP url); raises an Exception on failure.''' if not flash_url: flash_url = resolve_url(FLASH_PLAYER_URL) svc = RemotingService(AMF_ENDPOINT, referer=flash_url, amf_version=3) svc.addHeader('Auth', chr(5)) rdio_svc = svc.getService('rdio') pi = rdio_svc.getPlaybackInfo({ 'domain': domain, 'playbackToken': token, 'manualPlay': False, 'playerName': 'api_544189', 'type': 'flash', 'key': track}) if not pi: raise Exception, 'Failed to get playback info' return ( 'ondemand?' + pi['auth'], 'rtmpe://cp102543.edgefcs.net:1935/ondemand/mp3:' + \ pi['surl'].replace('30s-96', 'full-192'))
op.error('missing required arguments') key = args[0] secret = args[1] query = ' '.join(args[2:]) # Figure out the URL for the Flash player that we're going to # impersonate flash_url = resolve_url(FLASH_PLAYER_URL) # Create a REST API client ra = Rdio(key, secret, {}) # Create an AMF API client svc = RemotingService(AMF_ENDPOINT, referer=flash_url, amf_version=3) svc.addHeader('Auth', chr(5)) rdio_svc = svc.getService('rdio') # Search for the track to play results = ra.search(query=query, types=','.join(['Track']), count=1)['results'] if not results: fail('no results found') # Get a playback token token = ra.getPlaybackToken(domain='std.in') # Get playback information # # The end of the 'surl' value initially points to a 0:30 sample. Replace it to # get the full track.