← Back home · FAQ
Frequently asked questions
The questions people actually ask when wget stops getting through. Everything here reflects how rewget already works — see the about page and comparisons for detail.
- wget gives me 403 or cannot download this file even with a user-agent — what can I use instead that still works like wget?
- rewget is a drop-in wget replacement for exactly this case. Setting --user-agent does not help when a site fingerprints the TLS handshake rather than the header, so the request keeps failing. rewget keeps the wget command line unchanged and runs plain wget first; when it sees a 403, CAPTCHA, or rate-limit, it automatically retries with a browser-like TLS fingerprint (via rquest) and, if that is still not enough, a real headless browser. You keep your existing wget flags and scripts — the fallback happens for you.
- How do I download a file from a Cloudflare or JS-challenge-protected site from the command line?
- Plain wget and curl cannot solve a JavaScript challenge, which is why they return the challenge HTML instead of the file. rewget escalates to a real headless Chromium stage that executes the challenge, then downloads the file through the passed session — all from the same wget-style command. For sites that only fingerprint TLS (not a full JS challenge), the lighter browser-impersonating HTTP stage handles it without launching a browser at all.
- Does rewget slow down downloads from sites that were never blocking me?
- No. rewget always tries plain wget first, so unprotected downloads run at normal wget speed with no browser involved. It only escalates when it detects a block. It also caches the working stage per domain for seven days, so repeated mirror jobs against the same host skip straight to the stage that works instead of re-probing each time.
- Is rewget really a drop-in replacement for wget?
- Yes. The rewget CLI forwards every wget flag unchanged and only intercepts its own --rewget-* options, so aliasing wget=rewget keeps your existing scripts, Makefiles, and CI working. You can also point it at wget2 underneath if you want its HTTP/2 and parallel features. See the features page for the full compatibility list.
- Which browser profiles ship today, and how are they updated?
- Chrome 131 and 130, Firefox 136 and 133, Safari 18, and Edge 131. List what is installed with --rewget-list-profiles and pull the latest set with --rewget-update-profiles. Profiles are Ed25519-signed and verified before use, so updates cannot inject unverified fingerprints.
- How do I stop rewget from escalating in CI?
- Use --rewget-no-fallback. rewget then fails fast on a block instead of escalating to stage 2 or 3, which is the right behaviour when you want CI to flag a genuine regression or outage instead of hiding it. The quickstart covers the other flags you will use.
- Does rewget bypass logins or authenticated access control?
- No. rewget handles fingerprint-based blocks and JavaScript challenges — the cases where a real browser would succeed and a plain HTTP client would not. If a site requires you to log in or holds content behind a paywall, rewget does not change that.
- What platforms and license does rewget use?
- rewget runs on Linux and macOS today, per its release artifacts. It is written in Rust and dual-licensed MIT / Apache-2.0. Install via Homebrew, npm, PyPI, or cargo — each package includes both the rewget CLI and the rewgetd daemon.