Free tools Windows power users keep installed
One-click scans. No signup required.
To bulk export screenshots, read a list of URLs, capture each page in a repeatable browser workflow, and save each image under a predictable filename. For scripted exports, Playwright is the most direct fit: it supports viewport, element, and full-page screenshots, plus output-format and scaling controls. Use ShareX for desktop-driven capture, or a hosted screenshot API when the job needs interactions or managed batch processing.
Choose the right bulk screenshot workflow
Bulk export is a repeated capture workflow, not a special image format. The best method depends on whether your input is a URL list, a desktop screen, or pages that need user-like interaction before capture.
| Approach | Best fit | What to consider |
|---|---|---|
| Playwright script | Repeatable exports from a list of URLs, with control over capture scope, file names, and browser timing. | You manage the browser environment, dependencies, concurrency, and failure handling. |
| ShareX | Windows desktop workflows, user-driven captures, scrolling screenshots, and image handling. | Its reviewed official documentation covers capture and automation capabilities, but does not establish a turnkey URL-list batch exporter. |
| Hosted screenshot API | Large or operationally managed jobs, or captures that require interactions such as logging in, submitting a form, expanding a tree, or waiting for a dashboard. | Check authentication, service limits, retention, and pricing before using it in production. |
For a URL-driven export that you want to own and repeat, start with Playwright. For an existing desktop process, ShareX may be more natural. If a screenshot depends on interactive steps or you do not want to operate browsers yourself, consider a hosted API.
Plan the export before capturing
Choose viewport, full-page, or element capture
- Viewport: Captures the visible browser area. It is usually smaller and faster, and suits screenshots meant to show what a visitor sees on first load.
- Full page: Captures the entire scrollable page, including content below the fold. Use it for page reviews and documentation; pages with very long or dynamically loaded content may need extra care.
- Element: Captures a specific component, such as a chart or product card. Use a stable CSS selector and wait until that element is visible.
Pick format and scale
PNG preserves lossless detail. JPEG and WebP can reduce file size; where supported, quality settings let you trade some image fidelity for smaller files. CSS-pixel scale keeps output closer to the page’s layout dimensions. Device-pixel scale retains more high-DPI detail but creates larger images.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall#1 Best Overall
- ICONIC ERGONOMIC DESIGN WITH THUMB REST — PC gaming mouse favored by millions worldwide with a form factor that perfectly supports the hand while its buttons are optimally positioned for quick and easy access
- 11 PROGRAMMABLE BUTTONS — Assign macros and secondary functions across 11 programmable buttons to execute essential actions like push-to-talk, ping, and more
- HYPERSCROLL TILT WHEEL — Speed through content with a scroll wheel that free-spins until its stopped or switch to tactile mode for more precision and satisfying feedback that’s ideal for cycling through weapons or skills
- 11 RAZER CHROMA RGB LIGHTING ZONES — Customize each zone from over 16.8 million colors and countless lighting effects, all while it reacts dynamically with over 150 Chroma integrated games
- OPTICAL MOUSE SWITCHES GEN 2 — With zero unintended misclicks these switches provide crisp, responsive execution at a blistering 0.2ms actuation speed for up to 70 million clicks
Decide what counts as ready
A page’s initial load event does not necessarily mean its useful content has finished rendering. Decide whether the capture should wait for a selector, a delay, or a network-idle condition. If a page contains changing timestamps, rotating promotions, or animations, disable or mask those volatile elements when your goal is a consistent comparison.
Design deterministic filenames
Use a stable identifier derived from the page or route, and include relevant capture state such as viewport or an index. Sanitize slashes, query strings, and characters that are invalid in filenames. For example, a URL like https://example.com/products/widget might become products-widget-desktop.png. If one URL produces several images, append a clear index or state name rather than overwriting a previous file.
Bulk export URLs with Playwright
Playwright’s screenshot interfaces capture the viewport, an element, or the full scrollable page. Its CLI also exposes full-page capture, custom filenames, image type selection, and high-resolution capture. The example below uses the Node.js API so the URL list, readiness condition, filenames, and failure log are explicit.
Install Playwright and its browser once in your project:
Rank #2
- Pentakill, 5 DPI Levels - Geared with 5 redefinable DPI levels (default as: 500/1000/2000/3000/4000), easy to switch between different game needs. Dedicated demand of DPI options between 500-8000 is also available to be processed by software.
- Any Button is Reassignable - 11 programmable buttons are all editable with customizable tactical keybinds in whatever game or work you are engaging. 1 rapid fire + 2 side macro buttons offer you a better gaming and working experience.
- Comfort Grip with Details - The skin-friendly frosted coating is the main comfort grip of the mouse surface, which offers you the most enjoyable fingerprint-free tactility. The left side equipped with rubber texture strengthened the friction and made the mouse easier to control.
- 5 Decent Backlit Modes - Turn the backlit on and make some kills in your gaming battlefield. The hyped dynamic RGB backlit vibe will never let you down when decorating your gaming space, it would be better with other Redragon accessories with lights on.
- Fatigue Killer with Ergonomic Design - Solid frame with a streamlined and general claw-grip design offers a satisfying and comfortable gaming experience with less fatigue even though after hours of use.
npm init -y
npm install playwright
npx playwright install chromium
Create urls.txt with one URL per line, then save this as export.mjs. The script waits for each page’s DOM to load, allows a short settling period for client-side rendering, and saves a full-page PNG under a sanitized, indexed name. Adjust the readiness condition to match the sites you capture.
import { chromium } from 'playwright';
import { readFile, mkdir, appendFile } from 'node:fs/promises';
const urls = (await readFile('urls.txt', 'utf8'))
.split(/r?n/)
.map(line => line.trim())
.filter(line => line && !line.startsWith('#'));
await mkdir('screenshots', { recursive: true });
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });
function safeName(url, index) {
const parsed = new URL(url);
const route = `${parsed.hostname}${parsed.pathname}`
.replace(//$/, '')
.replace(/[^a-zA-Z0-9_-]+/g, '-')
.replace(/-+/g, '-')
.replace(/^-|-$/g, '') || 'page';
return `${String(index + 1).padStart(3, '0')}-${route}-full.png`;
}
for (let i = 0; i < urls.length; i++) {
const url = urls[i];
const path = `screenshots/${safeName(url, i)}`;
try {
const response = await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30000 });
await page.waitForTimeout(1000);
await page.screenshot({ path, fullPage: true, type: 'png' });
console.log(`${response?.status() ?? 'no response'} ${url} -> ${path}`);
} catch (error) {
const message = `${url}t${error instanceof Error ? error.message : String(error)}n`;
await appendFile('screenshots/errors.tsv', message);
console.error(`Failed: ${url}: ${message.trim()}`);
}
}
await browser.close();
Run it with node export.mjs. The output directory is created if it does not exist. Failed navigations are recorded in screenshots/errors.tsv; successful pages continue to the next URL instead of aborting the batch. A returned HTTP error status is logged but does not itself throw, so decide whether your export should also reject non-success status codes.
Adapt the script for other capture needs
- Viewport capture: Set
fullPage: falseinpage.screenshot(). - Element capture: Wait for a selector, then call
page.locator('your-selector').screenshot({ path }). If the selector is absent, record a per-URL failure rather than silently capturing the wrong content. - JPEG or WebP: Set the supported screenshot
typeto'jpeg'or'webp'; use a quality setting when applicable. - High-DPI output: Configure the browser context’s device scale factor where appropriate; expect larger files.
- Different viewport or state: Include a viewport or state label in each filename, and use separate browser contexts when the pages require different cookies or settings.
Using the Playwright CLI
The CLI is useful for quick one-off captures and supports a target URL, output path, full-page mode, image type, and high-resolution capture. Check the installed version’s npx playwright screenshot --help output for exact available flags. For a list-driven export with custom naming, per-page recovery, and state-specific waits, a small API script is easier to extend than a chain of CLI commands.
Keep exports repeatable and manageable
Control rendering differences
Playwright’s visual-snapshot guidance warns that browser rendering can vary with the host operating system, browser version, settings, hardware, power source, headless mode, and other factors. If exported screenshots are regression baselines or will be compared side by side, run them in a consistent environment with a stable browser version, viewport, fonts, and settings.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesRank #3
- 【High-performance Gaming Mouse】UP 12400 DPI provides high sensitivity and smoothing movements. Adjustable DPI(100-12400) and Polling Rate(125Hz-1000Hz) ensure this professional gaming mouse is suitable for gaming or daily work. Attached the 40G Acceleration gives you a greater edge over your competition
- 【Real Customizable】You can remap the 19 buttons through macro editing to meet your usage habits under different conditions. Equipped with 5 Memory Profiles to save your settings, and 2 working modes that can be switched with one click. Redragon MMO Mouse is customizable for Any Scenario, always be one step ahead of others
- 【Balance & Weight at Your Control】Customize to your advantage. Arrange up to eight removable 2.4-gram weights inside the mouse for personalized weight and balance tuning, providing the best feel for every game
- 【Real RGB Gaming Mouse】16.8million color combinations bring an immersive gaming experience. 4 Lighting Modes can be easily switched to feed different gaming, and you also can adjust mouse lighting according to your preference using the software(download on redragonzone)
- 【Unique & Comfort Design】Ergonomic Design with Skin-friendly material, long gaming without fatigue or pain. The 12 side buttons can be remapped through macro editing, making keyboard combination functions realized through button clicks, allowing you to win efficiently in any game scenario
Balance speed against reliability
A single browser page reused sequentially is simple and avoids overwhelming target sites, but a large list takes longer. Parallel pages can improve throughput, yet they use more memory and may trigger rate limits or change how pages respond. Start with sequential captures; increase concurrency only after checking resource use and the target sites’ access policies. Set navigation timeouts and log failures so one slow page does not leave the entire export unexplained.
Manage file size and storage
Full-page images and high-DPI captures can become large, especially for long pages. Use viewport or element capture when the whole page is not needed, select a lossy format when smaller files are acceptable, and keep the capture scale appropriate to the review task. For recurring exports, separate runs into dated folders or use an explicit versioning policy so new images do not overwrite files that someone still needs.
ShareX and hosted API alternatives
When ShareX is the better fit
ShareX is a Windows desktop alternative for workflows that begin with a screen or a user-driven capture. Its official documentation covers capture capabilities, scrolling screenshots, automation, image editing, OCR, and upload destinations. That makes it useful for desktop capture and post-capture handling; the reviewed documentation does not establish a ready-made URL-list batch exporter, so browser scripting is the clearer approach when many page URLs are the input.
When a hosted screenshot API is useful
A hosted service can be a fit when capture involves interactions—such as logging in, submitting a form, expanding a tree, or waiting for a dashboard—or when you want batch processing without running browser infrastructure. ScreenshotCenter documents interaction steps before capture and a batch-screenshots API workflow. Compare authentication requirements, limits, image retention, and pricing against your use case before relying on any service in production.
Recommended Free Tools
Rank #4
- 【Speed DPI Switch】 Bengoo customizable RGB gaming mice, with 4 adjustable DPI speed Switch:1200-1600-2400-3600, you can control the speed more freely and easily. No need any driver, plug and play directly.
- 【Flexible Buttons】 Equipped with six buttons: Left button, Right button, Forward, Back, DPI button and Scroll wheel, meets for your demands excellently for different games, enables to switch fast while gaming.
- 【Lighting Colors】 Muti-colors lights greatly match your style, provide you fancy gaming environment and highlight your game atmosphere.
- 【Ergonomic Design】 Perfectly fits under your palm, skin-friendly material we take provides you a perfect hand feel, gives gamers the most comfortable gaming experienece and makes you feel free from fatigue.
- 【Wide Compatibility】 Support Windows XP, Vista, Windows 7, Windows 8. Adaptable for Notebook, PC, laptop, Computer, Macbook and so on.
ScreenshotNeo: API and MCP option
ScreenshotNeo is a website screenshot API and MCP server for developers. It accepts one GET request with a URL and returns a PNG, JPEG, WebP, or PDF. Its distinguishing workflow is to accept cookie or consent banners like a visitor and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses include X-Page-Verdict and X-Billed headers. The MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients.
One API request captures one URL. For a URL list, call it once per URL and save each response under a deterministic local filename, or use the API’s bulk capture option for up to 100 URLs per call. The API’s supported options include full-page capture with lazy images loaded, CSS-selector element capture, dark mode, 12 device presets or a custom viewport, retina scale, PDF paper size and page ranges, custom CSS and JavaScript, click-before-capture, wait conditions, request blocking, custom headers, cookies, user agent and Authorization, timezone and geolocation, transparent background, resizing, caching with a chosen TTL, signed links for public image tags, asynchronous jobs with signed webhooks, and a usage API. Its parameter names also work with those used by other screenshot APIs, which can simplify switching.
For a simple one-URL call, create an API key and substitute it for YOUR_API_KEY. The target below is Stripe; replace it with the page you need. See the ScreenshotNeo API documentation for request parameters and response details.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
The Node.js example returns the response object; production code should check the response status and write the response body to a file. Keep API keys out of source control, and inspect the response headers to distinguish clean captures from non-billable outcomes.
Plans include 1,000 shots per month free with no card, then Starter at $5 for 3,000, Growth at $15 for 15,000, Pro at $39 for 60,000, Scale at $99 for 250,000, and Business at $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Sign up for 1,000 free screenshots a month with no card.
Best Value
- Pentakill, 5 DPI Levels - Geared with 5 redefinable DPI levels (default as: 400/800/1600/2400/3200), easy to switch between different game needs. Dedicated demand of DPI options between 100-10000 is also available to be processed by software
- Any Button is Reassignable - 6 programmable buttons are all editable with customizable tactical keybinds in whatever game or work you are engaging. 2 side macro buttons offer you a better gaming and working experience
- 82 Gram Lightweight - Selected ultra-light materials and well-crafted form to offer the fastest, cleanest, and fully controlled mouse using. You are controlling the M730 mouse with no hassle and no extra effort
- 8 Decent Backlit Modes - Turn the backlit on and make some kills in your gaming battlefield. The hyped dynamic RGB backlit vibe will never let you down when decorating your gaming space, it would be better with other Redragon accessories with lights on
- Fatigue Killer with Ergonomic Design - Solid frame with a streamlined and general claw-grip design offers each gamer a satisfying and comfortable gaming experience with less fatigue even though after hours of use
Troubleshoot common bulk-export failures
- Navigation times out: The page may be slow, blocked, or waiting on long-running requests. Increase the timeout only when justified, wait for a specific content selector rather than every network connection to stop, and record the URL and error.
- Screenshot is blank or incomplete: The page may render content after the selected readiness event. Wait for a meaningful selector or a short settling delay. For lazy-loaded pages, scroll through content before capturing or use a full-page feature that loads lazy images.
- Element capture fails: The selector may not match, may appear only after interaction, or may be hidden. Confirm the selector, wait for visibility, and capture the page when the element is absent to diagnose its state.
- Images differ between runs: Stabilize operating system, browser version, viewport, scale, fonts, color scheme, and headless settings. Disable or mask changing content if it is not part of the comparison.
- Filenames collide or are invalid: Sanitize URL-derived names, include a stable index or route identifier, and add viewport or state labels where the same page is captured more than once.
- Batch stops on one problematic URL: Catch errors inside the per-URL loop, append failures to a log, and continue. Review logged URLs separately rather than silently dropping failures.
- Output consumes too much disk: Reduce capture scope or scale, or choose JPEG/WebP where lossy output is acceptable. Avoid capturing full pages by default when a viewport or component image answers the question.
- Hosted capture behaves differently than local browser capture: Check the API’s supported options, authentication, limits, and retention, and make sure the requested interaction and readiness condition are configured before treating the result as equivalent.
Frequently Asked Questions
Should I use full-page screenshots for every URL?
No. Use full-page capture when below-the-fold content matters; viewport or element captures are smaller and more focused.
Can I export screenshots for pages that require login?
Yes, if your workflow can authenticate safely. A browser script can use an authenticated context, while a hosted API may support cookies, headers, or interaction steps; verify the relevant service’s documented controls before use.
Why can the same page look different in separate exports?
Browser rendering depends on environment and settings, and the page itself may contain changing content. Keep the capture environment and page state stable for comparisons.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

