'Download to a filename using the info from info_dict
Return True on success and False otherwise'

def download(self, filename, info_dict):

    nooverwrites_and_exists = (self.params.get(u'nooverwrites', False) and os.path.exists(encodeFilename(filename)))
    if (not hasattr(filename, u'write')):
        continuedl_and_exists = (self.params.get(u'continuedl', True) and os.path.isfile(encodeFilename(filename)) and (not self.params.get(u'nopart', False)))
        if ((filename != u'-') and (nooverwrites_and_exists or continuedl_and_exists)):
            self.report_file_already_downloaded(filename)
            self._hook_progress({u'filename': filename, u'status': u'finished', u'total_bytes': os.path.getsize(encodeFilename(filename))})
            return True
    min_sleep_interval = self.params.get(u'sleep_interval')
    if min_sleep_interval:
        max_sleep_interval = self.params.get(u'max_sleep_interval', min_sleep_interval)
        sleep_interval = random.uniform(min_sleep_interval, max_sleep_interval)
        self.to_screen((u'[download]    Sleeping    %s    seconds...' % (int(sleep_interval) if sleep_interval.is_integer() else (u'%.2f' % sleep_interval))))
        time.sleep(sleep_interval)
    return self.real_download(filename, info_dict)
