MCPcopy Index your code
hub / github.com/LeyckerS/moondownloader

github.com/LeyckerS/moondownloader @v14.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v14.1 ↗ · + Follow
94 symbols 236 edges 2 files 5 documented · 5% updated 51d agov14.1 · 2026-05-17★ 955
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🌙 Moon Downloader

v14.1

Lightning-fast bulk file downloader for datanodes.to & fuckingfast.co

Built with Python · Playwright · aiohttp

Python Playwright Platform License


Best tested: ~250 MB/s on a 2.5 Gbps fiber — 23.5 GB across 47 files in ~3 minutes


📸 Screenshots

🖥️ Interface ✅ Download Complete
🚀 253.8 MB/s — 47 files on 2.5 Gbps fiber

⚡ Features

### 🚀 Performance - **8–32 parallel browsers** for extraction - **16–64 concurrent download streams** - Stall detection & automatic lane kills - Resume interrupted downloads (`.tmp`) ### 🛡️ Reliability - Per-URL retry with exponential backoff - Dead link detection (instant fail, no wasted time) - Ad overlay bypass & popup dismissal - Per-session telemetry logs
### 🎯 Providers - **fuckingfast.co** — regex extraction, no browser needed - **datanodes.to** — full browser automation flow - Automatic provider detection from URL ### 🔧 Modes - **Download** — extract & download files - **Links only** — extract direct URLs to file - CLI version included (`gen_cli.py`)

🚀 Quick Start

One-click launch (Windows)

  1. Install Python 3.10+ — check ✅ "Add Python to PATH"
  2. Double-click avvia.bat
  3. Done. First run auto-installs everything.

Manual setup

pip install -r requirements.txt
playwright install chromium
python gen_1.py

CLI version

python gen_cli.py <url1> <url2> ... -o <output_folder>

⚙️ Settings

Setting Range Default Description
Browsers 8 – 32 16 Parallel browser workers for link extraction
DL Streams 16 – 64 48 Concurrent download connections
Retries 0 – 5 3 Retry attempts per failed URL

Tip: For 40+ file sessions, 16 browsers / 48 streams is the sweet spot. For 200+ files, push browsers toward 32.


📂 Output Files

File Description
moontech_*.log Human-readable performance report
moontech_*.json Per-file metrics (machine-readable)
output_links.txt Extracted direct links (Links-only mode)
failed_links.txt URLs that failed all retries

📁 Optional Files

Place in the same folder as gen_1.py:

File Purpose
proxies.txt Proxy list — ip:port:user:pass or http://user:pass@ip:port
logo.png Custom header logo (auto-scaled to 44×44)

🏗️ Architecture

Single-file application (~1500 lines), structured in layers:

gen_1.py
├── Global config          — theme, tuning constants, user agents
├── Resource singletons    — aiohttp session pool, proxy rotation
├── Extraction layer       — fuckingfast (regex) + datanodes (Playwright)
├── Download engine        — Range resume, stall detection, lane kills
├── Telemetry              — 1 Hz snapshots, .log + .json output
├── GUI (tkinter)          — live stats, dual progress bars, color log
└── Async orchestration    — queue-based workers, semaphore concurrency

📋 Requirements

  • OS: Windows 10 / 11
  • Python: 3.10+
  • Disk: ~150 MB for Chromium browser
  • Packages: aiohttp, playwright, pillow

Made with 🖤 and cold coffee

Core symbols most depended-on inside this repo

log
called by 27
gen_1.py
_inc
called by 17
gen_1.py
_get
called by 4
gen_1.py
_label
called by 4
gen_1.py
mark_done
called by 4
gen_cli.py
_task
called by 4
gen_cli.py
_sess
called by 2
gen_1.py
poll
called by 2
gen_1.py

Shape

Method 58
Function 27
Class 9

Languages

Python100%

Modules by API surface

gen_1.py61 symbols
gen_cli.py33 symbols

For agents

$ claude mcp add moondownloader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact