rewget¶
wget-compatible wrapper with automatic fallback
rewget is a drop-in replacement for wget that automatically retries with browser emulation when websites block standard wget requests.
-
:material-download:{ .lg .middle } Drop-in Replacement
Use rewget exactly like wget. All wget options work unchanged.
-
:material-shield-check:{ .lg .middle } Automatic Bypass
Automatically bypasses bot protection using browser emulation.
No manual configuration needed.
-
:material-rocket-launch:{ .lg .middle } Three-Stage Fallback
- Plain wget (fast)
- TLS impersonation (stealth)
- Full browser (JavaScript)
-
:material-cog:{ .lg .middle } Highly Configurable
Fine-tune behavior with
--rewget-*flags while keeping wget semantics.
Quick Example¶
# Download with automatic fallback
rewget https://protected-site.com/file.tar.gz
# If the site blocks wget, rewget automatically:
# 1. Detects the 403/429 response
# 2. Retries with browser-like TLS fingerprint
# 3. Falls back to full browser if needed
Why rewget?¶
Many websites now block wget and curl with bot detection systems like:
- Cloudflare - TLS fingerprinting, JavaScript challenges
- Akamai - Bot Manager, behavioral analysis
- PerimeterX - Advanced bot detection
- DataDome - Real-time bot protection
rewget handles these automatically by progressively escalating through detection bypass techniques.
Features¶
| Feature | Description |
|---|---|
| 3-Stage Fallback | wget → TLS impersonation → JavaScript preflight |
| 6 Browser Profiles | Chrome, Firefox, Safari, Edge with accurate fingerprints |
| Domain Caching | Remembers successful stage per domain (7-day TTL) |
| Auto Chromium | Downloads browser on first use (~150MB) |
| Remote Updates | Keep profiles current with --rewget-update-profiles |
| Cross-Platform | Linux, macOS, Windows |
Installation¶
Get Started :material-arrow-right: View on GitHub :material-github:
How It Works¶
┌─────────────────────────────────────────────────────────────┐
│ rewget │
├─────────────────────────────────────────────────────────────┤
│ Stage 1: wget "Try plain wget first" │
│ ↓ (403/429?) │
│ Stage 2: Impersonate "Retry with browser TLS" │
│ ↓ (still blocked?) │
│ Stage 3: JS Preflight "Full browser session" │
└─────────────────────────────────────────────────────────────┘
rewget starts with the fastest option (plain wget) and only escalates when needed. Most downloads complete at Stage 1 with zero overhead.
License¶
MIT License - see LICENSE for details.