Change download recording method, add sync function