ode-to-myrient
Playwright-based ROM downloader with parallel workers and adaptive throttling.
Automated tool for bulk-downloading retro game ROMs from Myrient using headless Chromium, designed for autonomous operation with Claude Code managing the download sessions.
Tech Stack
Why I Built This
Preserving retro game libraries requires downloading thousands of files from web archives. Manual downloading is impractical, and simple wget/curl scripts get blocked. This tool handles the complexity of rate limiting, resumption, and verification.
Features
- • Playwright-driven downloads bypassing Cloudflare JA3 fingerprinting
- • Parallel worker architecture (2-4 concurrent downloads)
- • Adaptive throttling on HTTP 429/503 and slow speeds
- • Fully resumable with download logging (skip completed files)
- • ZIP verification with magic bytes and file size checks
- • Discord monitoring with progress updates and stall detection
Architecture
Each worker runs an isolated Chromium page via Playwright, intercepting download events through Chrome DevTools Protocol. A central coordinator manages the work queue, tracks progress, and adjusts concurrency based on server response. Download state is persisted to JSON for full resumability.
Key Decisions
Playwright over wget/curl
Cloudflare's JA3 fingerprinting blocks common HTTP clients. A real browser with Playwright passes all checks without custom TLS configuration.
CDP for download interception
Playwright's built-in download API doesn't support progress tracking or parallel downloads well. Chrome DevTools Protocol gives fine-grained control over download events.
Built for Claude Code management
The tool is designed to be operated by Claude Code in autonomous mode, with Discord webhooks providing monitoring without requiring a human to watch the terminal.