def start(self, url, filePath, params={}, info_from=None, retries=0): ''' Owervrite start from BaseDownloader ''' self.url = url self.filePath = filePath self.downloaderParams = params self.fileExtension = '' # should be implemented in future rtmpdump_url = self._getCMD(url) if 0: #rtmpdump -r rtmp://5.79.71.195/stream/ --playpath=3001_goldvod --swfUrl=http://goldvod.tv:81/j/jwplayer/jwplayer.flash.swf --pageUrl=http://goldvod.tv/tv-online/tvp1.html -o tvp1.flv tmpTab = url.split(' ') rtmpdump_url = '"' + tmpTab[0].strip() + '"' del tmpTab[0] prevflashVer = '' for item in tmpTab: item = item.strip() # ignore empty and live params if '' != prevflashVer: rtmpdump_url += ' --' + prevflashVer[ 0:-1] + ' ' + item + '"' prevflashVer = '' continue idx = item.find('=') if -1 == idx: continue argName = item[:idx] argValue = item[idx + 1:] if 'live' in argName: item = 'live' else: item = '%s="%s"' % (argName, argValue) if 'flashVer' == argName: prevflashVer = item continue rtmpdump_url += ' --' + item cmd = DMHelper.GET_RTMPDUMP_PATH( ) + " " + rtmpdump_url + ' --realtime -o "' + self.filePath + '" > /dev/null 2>&1' printDBG("rtmpdump cmd[%s]" % cmd) self.console = eConsoleAppContainer() self.console_appClosed_conn = eConnectCallback(self.console.appClosed, self._cmdFinished) #self.console.stderrAvail.append( self._dataAvail ) self.console.execute(E2PrioFix(cmd)) self.rtmpStatus = self.RTMP_STS.CONNECTING self.status = DMHelper.STS.DOWNLOADING self.onStart() return BaseDownloader.CODE_OK
def isWorkingCorrectly(self, callBackFun): self.iptv_sys = iptv_system( DMHelper.GET_RTMPDUMP_PATH() + " -h 2>&1 ", boundFunction(self._checkWorkingCallBack, callBackFun))