import requests from pathlib import Path from concurrent.futures import ThreadPoolExecutor day = "2025-11-01" index = requests.get(f"https://data.solarchive.org/txs/{day}/index.json").json() output_dir = Path(day) output_dir.mkdir(exist_ok=True) def download(file): data = requests.get(file["url"]).content (output_dir / file["name"]).write_bytes(data) print(f"✓ {file['name']} ({len(data) / 1e6:.1f} MB)") with ThreadPoolExecutor(max_workers=10) as executor: executor.map(download, index["files"])