def real_download(self, filename, info_dict):
def run_rtmpdump(args):
start = time.time()
+ resume_percent = None
+ resume_downloaded_data_len = None
proc = subprocess.Popen(args, stderr=subprocess.PIPE)
cursor_in_new_line = True
-
- def dl():
- resume_percent = None
- resume_downloaded_data_len = None
- proc_stderr_closed = False
+ proc_stderr_closed = False
+ try:
while not proc_stderr_closed:
# read line from stderr
line = ''
self.to_screen('')
cursor_in_new_line = True
self.to_screen('[rtmpdump] ' + line)
-
- try:
- dl()
finally:
proc.wait()
-
if not cursor_in_new_line:
self.to_screen('')
return proc.returncode
RD_INCOMPLETE = 2
RD_NO_CONNECT = 3
+ started = time.time()
+
try:
retval = run_rtmpdump(args)
except KeyboardInterrupt:
while retval in (RD_INCOMPLETE, RD_FAILED) and not test and not live:
prevsize = os.path.getsize(encodeFilename(tmpfilename))
- self.to_screen('[rtmpdump] %s bytes' % prevsize)
+ self.to_screen('[rtmpdump] Downloaded %s bytes' % prevsize)
time.sleep(5.0) # This seems to be needed
args = basic_args + ['--resume']
if retval == RD_FAILED:
break
if retval == RD_SUCCESS or (test and retval == RD_INCOMPLETE):
fsize = os.path.getsize(encodeFilename(tmpfilename))
- self.to_screen('[rtmpdump] %s bytes' % fsize)
+ self.to_screen('[rtmpdump] Downloaded %s bytes' % fsize)
self.try_rename(tmpfilename, filename)
self._hook_progress({
'downloaded_bytes': fsize,
'total_bytes': fsize,
'filename': filename,
'status': 'finished',
+ 'elapsed': time.time() - started,
})
return True
else: