"""Process a single dictionary returned by an InfoExtractor."""
# Do nothing else if in simulate mode
if self.params.get('simulate', False):
- try:
- info_dict['url'] = self.verify_url(info_dict['url'].encode('utf-8')).decode('utf-8')
- except (OSError, IOError, urllib2.URLError, httplib.HTTPException, socket.error), err:
- raise UnavailableFormatError
+ # Verify URL if it's an HTTP one
+ if info_dict['url'].startswith('http'):
+ try:
+ info_dict['url'] = self.verify_url(info_dict['url'].encode('utf-8')).decode('utf-8')
+ except (OSError, IOError, urllib2.URLError, httplib.HTTPException, socket.error), err:
+ raise UnavailableFormatError
# Forced printings
if self.params.get('forcetitle', False):
# Download using rtmpdump. rtmpdump returns exit code 2 when
# the connection was interrumpted and resuming appears to be
# possible. This is part of rtmpdump's normal usage, AFAIK.
- retval = subprocess.call(['rtmpdump', '-q', '-r', url, '-o', filename] + [[], ['-e']][self.params.get('continuedl', False)])
- while retval == 2:
+ basic_args = ['rtmpdump', '-q', '-r', url, '-o', filename]
+ retval = subprocess.call(basic_args + [[], ['-e', '-k', '1']][self.params.get('continuedl', False)])
+ while retval == 2 or retval == 1:
self.to_stdout(u'\r[rtmpdump] %s bytes' % os.path.getsize(filename), skip_eol=True)
time.sleep(2.0) # This seems to be needed
- retval = subprocess.call(['rtmpdump', '-q', '-e', '-r', url, '-o', filename])
+ retval = subprocess.call(basic_args + ['-e'] + [[], ['-k', '1']][retval == 1])
if retval == 0:
self.to_stdout(u'\r[rtmpdump] %s bytes' % os.path.getsize(filename))
return True