🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

browser-auto-download

by @aaronxx

Browser-automated file download with enhanced features. Auto-detects platform (Windows/macOS/Linux, 64/32-bit, ARM/Intel), handles multi-step navigation (homepage to platform-specific pages), captures auto-downloads triggered on page load, and falls back to button clicking when needed. Ideal for complex download flows where curl/wget fail due to client-side rendering, automatic downloads, or multi-page navigation. Features page scrolling for lazy content, extended wait times, and Golang support.

Versionv1.0.1
Downloads2,546
Installs4
Stars1
Comments1
TERMINAL
clawhub install browser-auto-download

📖 About This Skill


name: browser-auto-download version: "4.1.0" description: "Browser-automated file download with enhanced features. Auto-detects platform (Windows/macOS/Linux, 64/32-bit, ARM/Intel), handles multi-step navigation (homepage to platform-specific pages), captures auto-downloads triggered on page load, and falls back to button clicking when needed. Ideal for complex download flows where curl/wget fail due to client-side rendering, automatic downloads, or multi-page navigation. Features page scrolling for lazy content, extended wait times, and Golang support."

Browser Auto Download v4.1.0 (Enhanced)

Download files from dynamic webpages with intelligent detection and multi-step navigation.

Key Features

  • Auto-download capture: Detects downloads triggered automatically on page load
  • Multi-step navigation: Finds and navigates to platform-specific pages (PC/Desktop versions)
  • Platform auto-detection: Windows x64/ARM64, macOS Intel/Apple Silicon, Linux
  • Event listening: Captures all download events without requiring button clicks
  • Smart fallback: Tries multiple strategies (auto-download, navigation, clicking)
  • When to Use

    Use this skill for:

  • Auto-download sites: Downloads start automatically when page loads
  • Multi-step flows: Homepage - click "PC version" - download page
  • Dynamic content: Download links generated via JavaScript
  • Interactive downloads: Requires clicking buttons or navigating UI
  • NOT for: Direct file URLs (use curl/wget instead)

    Quick Start

    Option 1: Automatic (Recommended)

    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://example.com/download"
    

    The script will: 1. Check for auto-downloads on page load 2. Look for platform-specific page links (PC/Desktop version) 3. Navigate if needed 4. Try clicking download buttons as fallback

    Option 2: Built-in Shortcuts

    # WeChat DevTools
    python skills/browser-auto-download/scripts/auto_download.py --wechat

    Meitu Xiuxiu

    python skills/browser-auto-download/scripts/auto_download.py --meitu

    Option 3: Python Module

    from skills.browser-auto-download.scripts.auto_download import auto_download

    result = auto_download( url="https://example.com/download", auto_select=True, # Platform detection auto_navigate=True # Multi-step navigation )

    if result: print(f"Downloaded: {result['path']}")

    How It Works

    Three-Stage Strategy

    Stage 1: Auto-Download Detection

    Page loads - Check for downloads - Success?
        Yes:                    No:
        Save file               Go to Stage 2
    

    Stage 2: Multi-Step Navigation

    Look for "PC/Desktop" link - Navigate - Check downloads - Success?
        Yes:                        No:
        Save file                  Go to Stage 3
    

    Stage 3: Button Clicking

    Try multiple selectors - Click - Wait for download - Save
    

    Platform-Specific Page Detection

    Automatically finds links like:

  • "meitu for PC" - pc.meitu.com
  • "Desktop version" - desktop.example.com
  • "Windows Download" - windows.example.com
  • Keywords: pc, desktop, windows, mac, download, 电脑, 桌面, 客户端

    Examples

    Auto-Download Sites (Best Case)

    # Sites that trigger download on page load
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://pc.meitu.com/en/pc?download=pc"
    

    Multi-Step Navigation

    # Homepage - PC version - Download
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://xiuxiu.meitu.com/" \
      --auto-navigate  # Enable (default: True)
    

    Manual Selector (Fallback)

    # If auto-detection fails
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://example.com/download" \
      --selector "button:has-text('Download for free')"
    

    Disable Features

    # Don't navigate to platform pages
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://example.com" \
      --no-auto-navigate

    Don't detect platform

    python skills/browser-auto-download/scripts/auto_download.py \ --url "https://example.com" \ --no-auto-select

    Platform Detection

    | System | Architecture | Keywords Used | |--------|--------------|---------------| | Windows | AMD64/x86_64 | windows, win64, x64, 64-bit, pc | | Windows | x86/i686 | windows, win32, x86, 32-bit, pc | | macOS | ARM64 (M1/M2/M3) | macos, arm64, apple silicon | | macOS | x86_64 (Intel) | macos, x64, intel | | Linux | x86_64 | linux, x64, amd64 |

    Troubleshooting

    Download not starting:

  • Use --headless (default: False) to observe the process
  • Check stderr for auto-download messages
  • Try --no-auto-navigate if navigation is causing issues
  • Use --selector to manually specify button
  • Wrong version downloaded:

  • Check platform detection in stderr output
  • Use --no-auto-select and manually specify --selector
  • Verify the site offers multiple versions
  • Navigation going to wrong page:

  • Disable with --no-auto-navigate
  • The site may not have platform-specific pages
  • File not saved:

  • Check write permissions in output directory
  • Ensure sufficient disk space
  • Wait for large files (up to 3 minutes)
  • Output Format

    stderr (Progress)

    Starting browser (visible)...
    Opening: https://example.com
    Checking for auto-downloads...
    Checking for platform-specific page link...
    Found platform page: https://pc.example.com
    Navigating to platform page...
    Download detected: software_v2.1.0_win64.exe
    Saving: software_v2.1.0_win64.exe

    SUCCESS! File: C:\Users\User\Downloads\software_v2.1.0_win64.exe Size: 231.9 MB

    stdout (JSON result)

    {
      "path": "C:\\Users\\User\\Downloads\\software_v2.1.0_win64.exe",
      "filename": "software_v2.1.0_win64.exe",
      "size_bytes": 243209941,
      "size_mb": 231.9,
      "platform": "Windows AMD64"
    }
    

    Real-World Examples

    Meitu Xiuxiu (Multi-step + Auto-download)

    from auto_download import quick_download_meitu

    result = quick_download_meitu()

    Flow: Homepage - PC page link - Navigate - Auto-download

    WeChat DevTools (Button click)

    from auto_download import quick_download_wechat_devtools

    result = quick_download_wechat_devtools()

    Flow: Homepage - Click "Stable Windows 64" - Download

    Generic Software (Mixed)

    result = auto_download(
        url="https://example.com/downloads",
        auto_select=True,    # Detect Windows 64-bit
        auto_navigate=True   # Find "Desktop version" link
    )
    

    Requirements

    pip install playwright
    playwright install chromium
    

    Advanced Usage

    Custom Platform Keywords

    Modify get_system_preference() in the script to add custom keywords.

    Integration with Scripts

    import subprocess
    import json

    result = subprocess.run([ 'python', 'skills/browser-auto-download/scripts/auto_download.py', '--url', 'https://example.com/download' ], capture_output=True, text=True)

    if result.returncode == 0: data = json.loads(result.stdout) print(f"Downloaded: {data['path']}") # Use the file

    Batch Downloads

    urls = [
        "https://example1.com/download",
        "https://example2.com/download",
        "https://example3.com/download"
    ]

    for url in urls: result = auto_download(url) if result: print(f"Success: {result['filename']}")

    ⚡ When to Use

    TriggerAction
    - **Auto-download sites**: Downloads start automatically when page loads
    - **Multi-step flows**: Homepage - click "PC version" - download page
    - **Dynamic content**: Download links generated via JavaScript
    - **Interactive downloads**: Requires clicking buttons or navigating UI
    **NOT for**: Direct file URLs (use `curl`/`wget` instead)

    💡 Examples

    Auto-Download Sites (Best Case)

    # Sites that trigger download on page load
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://pc.meitu.com/en/pc?download=pc"
    

    Multi-Step Navigation

    # Homepage - PC version - Download
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://xiuxiu.meitu.com/" \
      --auto-navigate  # Enable (default: True)
    

    Manual Selector (Fallback)

    # If auto-detection fails
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://example.com/download" \
      --selector "button:has-text('Download for free')"
    

    Disable Features

    # Don't navigate to platform pages
    python skills/browser-auto-download/scripts/auto_download.py \
      --url "https://example.com" \
      --no-auto-navigate

    Don't detect platform

    python skills/browser-auto-download/scripts/auto_download.py \ --url "https://example.com" \ --no-auto-select

    📋 Tips & Best Practices

    Download not starting:

  • Use --headless (default: False) to observe the process
  • Check stderr for auto-download messages
  • Try --no-auto-navigate if navigation is causing issues
  • Use --selector to manually specify button
  • Wrong version downloaded:

  • Check platform detection in stderr output
  • Use --no-auto-select and manually specify --selector
  • Verify the site offers multiple versions
  • Navigation going to wrong page:

  • Disable with --no-auto-navigate
  • The site may not have platform-specific pages
  • File not saved:

  • Check write permissions in output directory
  • Ensure sufficient disk space
  • Wait for large files (up to 3 minutes)