Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To capture screenshots of many websites from an India-located Linux VPS, run Puppeteer with a compatible Chrome for Testing browser, process URLs through a bounded queue, and save one uniquely named image per URL. Set a deliberate navigation timeout and readiness condition, choose viewport or full-page capture for the job, and record failures as well as successes. Puppeteer’s documented capture method is Page.screenshot().

What you need before capturing a URL list

  • A Linux VPS: AWS lists Mumbai (ap-south-1) and Hyderabad (ap-south-2) as India regions in its region table. This confirms regional availability, not that AWS is the cheapest provider or the best fit.
  • Node.js 22.12 or later for the current Puppeteer system requirements. Those requirements list Chrome for Testing on Debian/Ubuntu and openSUSE/Fedora Linux, on x64 and arm64; check the current requirements for your exact OS and architecture before deployment: Puppeteer supported browsers.
  • Enough CPU, memory, storage, and outbound bandwidth for the sites you intend to capture. There is no universal VPS size or safe concurrency figure: measure your own pages and capture settings.
  • A URL input list, a destination directory with adequate space, and a way to retain a per-URL success or failure record.

Install Puppeteer and verify Chrome

Installing the puppeteer package normally downloads a compatible Chrome for Testing browser. Package managers or deployment environments that block install scripts can skip that download, so check the browser before starting a large batch. See the Puppeteer installation guide.

  1. On a Debian or Ubuntu VPS, install Node.js 22.12+ using the method supported for your OS, then create a working directory and initialize a project: mkdir bulk-shots && cd bulk-shots && npm init -y.
  2. Install Puppeteer: npm install puppeteer. If your package manager disables install scripts, follow the installation guide’s browser setup instructions rather than assuming Chrome was downloaded.
  3. Confirm that the install completed and that Puppeteer can launch its browser by running the short test below before you submit the full URL list.
node -e "const p=require('puppeteer'); (async()=>{const b=await p.launch(); console.log(await b.version()); await b.close();})().catch(e=>{console.error(e);process.exit(1)})"

Minimal Linux images may lack Chrome’s shared libraries. Puppeteer’s troubleshooting guide lists Debian/Ubuntu dependencies, including certificates and fonts, GTK/ATK, NSS, GBM, Pango, X11 libraries, and related packages. Use the package list from that guide for the OS image you actually run; re-check when changing the base image. If Chrome fails because a library is missing, inspect unresolved dependencies with ldd /path/to/chrome | grep not, substituting the actual Chrome executable path.

Do not routinely add --no-sandbox to make launch errors disappear. Chrome’s sandbox helps isolate the browser from untrusted web content, and Puppeteer’s troubleshooting documentation says running without it is strongly discouraged. Configure the host so Chrome’s sandbox can operate, particularly when visiting arbitrary public URLs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
GMKtec G3S Mini PC Intel N95 Processor (Up to 3.4GHz) 8GB RAM 256GB M.2 SSD
  • 12th Intel Alder Lake N95 Processor – The GMKtec G3 S Mini PC is powered by the 12th Gen Intel N95 processor with 4 cores, 4 threads, 6MB cache and a burst frequency up to 3.4GHz. Compared with N100/N5105/N5100/N5095, the N95 delivers up to 36% overall performance improvement. Perfect for routine tasks, office work, and home entertainment, this compact mini desktop is more convenient than traditional bulky PCs.
  • 8GB RAM & 256GB SSD Storage – Pre-installed with 8GB DDR4 memory and a fast 256GB M.2 2242 SSD, the G3 S mini desktop offers quicker startup, smoother multitasking, and faster file transfers. Enjoy seamless performance whether you’re working on multiple applications, browsing, or streaming content.
  • Rich Interfaces & Connectivity – The G3 S mini computer comes equipped with USB 3.2 (up to 10Gbps), dual HDMI 2.0 (4K@60Hz), and a 3.5mm audio jack. With support for WiFi 5, Bluetooth 5.0, and Gigabit Ethernet (RJ45 1000MbE), it connects easily with monitors, projectors, printers, office equipment, and other peripherals, making it versatile for both home and business use.
  • Dual 4K Display Support – Featuring upgraded Intel UHD Graphics (up to 1000MHz), the G3 S supports 4K video playback and AV1 decoding for a smooth viewing experience. With dual HDMI outputs, you can connect two 4K@60Hz displays simultaneously, enabling efficient multitasking for work and entertainment.
  • GMKtec WARRANTY - GMKtec offers a 1-year limited GMKtec's warranty for each mini PC, starting from the date of the purchase. All defects due to design and workmanship are covered. With a professional after sales team always ready to attend to your needs, you can simply relax and enjoy your mini PC.

Build a bounded bulk screenshot script

The example below reads newline-separated URLs from urls.txt, uses a small worker pool, and writes one PNG per URL plus a JSON-lines result log. The concurrency value is an initial setting to test, not a universal recommendation. Lower it if the VPS becomes resource-constrained; raise it only after measuring the pages and server you will use.

Save as capture.mjs:

import puppeteer from 'puppeteer';
import { mkdir, readFile, appendFile } from 'node:fs/promises';
import { createHash } from 'node:crypto';
import path from 'node:path';

const input = await readFile('urls.txt', 'utf8');
const urls = input.split(/r?n/).map(s => s.trim()).filter(Boolean);
const outputDir = 'screenshots';
const logPath = path.join(outputDir, 'results.jsonl');
const concurrency = 2; // Measure your own workload before changing this.
const navigationTimeoutMs = 45_000;
const fullPage = true; // Set false for viewport-only images.

await mkdir(outputDir, { recursive: true });
const browser = await puppeteer.launch();
let next = 0;

async function worker() {
  while (true) {
    const index = next++;
    if (index >= urls.length) return;
    const url = urls[index];
    const id = createHash('sha256').update(`${index}n${url}`).digest('hex').slice(0, 16);
    const file = path.join(outputDir, `${String(index + 1).padStart(5, '0')}-${id}.png`);
    let page;
    const startedAt = new Date().toISOString();
    try {
      page = await browser.newPage();
      page.setDefaultNavigationTimeout(navigationTimeoutMs);
      await page.setViewport({ width: 1365, height: 900, deviceScaleFactor: 1 });
      await page.goto(url, { waitUntil: 'networkidle2', timeout: navigationTimeoutMs });
      await page.screenshot({ path: file, type: 'png', fullPage });
      await appendFile(logPath, JSON.stringify({ url, status: 'ok', file, startedAt }) + 'n');
      console.log(`OK ${url} -> ${file}`);
    } catch (error) {
      await appendFile(logPath, JSON.stringify({ url, status: 'error', message: String(error), startedAt }) + 'n');
      console.error(`FAIL ${url}: ${error.message}`);
    } finally {
      if (page) await page.close().catch(() => {});
    }
  }
}

try {
  await Promise.all(Array.from({ length: Math.min(concurrency, urls.length) }, () => worker()));
} finally {
  await browser.close();
}

Run it with node capture.mjs. The numbered, hash-suffixed filenames avoid collisions even when URLs share a host or path. The log makes failed URLs visible without stopping the rest of the batch. Treat the input as trusted only if you control it; otherwise validate allowed URL schemes and destinations to avoid turning the VPS into a way to access internal services.

Rank #2
Getorli Mini PC, Ryzen 5 7430U(Beats 7330U/5300U),16GB DDR4 Upgradable RAM 512G SSD, Dual 2.5G LAN Mini Computers Support Triple 4K Display, WiFi6 Mini Desktop Computer for Home Office Daily Use
  • 【Powerful AMD Core Running Performance】Adopt AMD Ryzen 5 7430U processor with 6 cores 12 threads, clock speed reach up to 4.3GHz. This mini computer delivers steady running performance to match daily office operation, daily home entertainment and light gaming usage demands, stable output without frequent stutter, fit for long time daily use.
  • 【Smooth 4K Multi-screen Display Output】Built-in AMD Radeon graphics card with 1800MHz working frequency, this mini gaming pc supports 4K 60Hz video output. Equipped with HDMI, DP 1.2 and Type-C three display interfaces, users can freely combine connection ways to realize triple screen linkage, convenient for multi-task work split screen operation and high-definition video playback, improve daily operation efficiency effectively.
  • 【Rich Interfaces & Stable Dual LAN Transmission】This mini pc comes with complete daily mainstream ports, including multiple USB 3.2/USB2.0 ports, audio jack, DC power port and other common interfaces. Equipped with 2.5G dual RJ45 wired network port, support fast and stable data transmission, can stably connect with monitor, projector, office equipment and household audio-visual devices, meet diversified external connection needs.
  • 【Dual High-speed Wireless Connection Mode】Equipped with WiFi6 wireless network module and upgraded Bluetooth 5.3 version on this micro pc. WiFi6 brings faster network access speed and smoother network signal transmission; Bluetooth 5.3 realizes low-delay stable connection with wireless keyboard, mouse, headset, printer and other peripheral devices, optimize daily wireless using experience.
  • 【Large Expandable Memory & Reliable Heat Dissipation】Configured with 16GB 3200MHz DDR4 RAM and 512GB built-in SSD, users can expand memory up to 64GB and solid state storage up to 4TB through reserved expansion slots. Compact body structure adopts aluminum alloy shell and honeycomb heat dissipation holes, speed up internal air circulation, lower operating temperature, maintain long-term stable operation and extend service life.

Choose the capture size and readiness condition

Viewport, full page, or element

page.screenshot() captures the current page. fullPage: true captures the full document; the default is false. Use full-page mode for a complete page image, and viewport mode when every output must have consistent dimensions. Puppeteer also supports a clip rectangle and saving to a path, as well as image type and encoding options. For one component rather than the whole page, use ElementHandle.screenshot(). The official guide explains the capture workflow: Puppeteer screenshots; option details are in the ScreenshotOptions API.

Navigation is not the same as content readiness

The example uses waitUntil: 'networkidle2', which Puppeteer’s guide demonstrates. It is not a universal signal that a page is ready: analytics or other persistent requests can prevent network quiet, while lazy-loaded images, fonts, or application content may appear later. Choose a condition that suits the target site; where necessary, wait for a specific selector or asset after navigation before taking the screenshot. Avoid an unbounded wait: keep a per-navigation timeout and log the URL and error when it expires.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BOSGAME E5 11 Pro Mini PC, AMD Ryzen 5300U 4C/ 8T, Business Home Office PC
  • 【AMD Ryzen 3 5300U CPU: Outperforms N150 & 3500U】 BOSGAME E5 mini PC is powered by the TSMC 7nm FinFET architecture AMD Ryzen 3 5300U processor (4 Cores, 8 Threads, up to 3.8GHz boost, 6MB total cache). Compared to low-end Intel N150 or 3500U chips which only have 4 single threads and throttle under load, the 5300U delivers over 30% faster multi-core speed. Run 30+ browser tabs, large Excel sheets, and Zoom meetings simultaneously without system lag.
  • 【8GB DDR4 RAM & 256GB NVMe SSD Storage】 Installed with high-speed 8GB DDR4 dual-channel memory and a fast 256GB M.2 2280 SSD, eliminating slow boot times and application loading delays. To accommodate growing data requirements, the upgradeable hardware design features dual SODIMM slots that allow you to expand memory up to 64GB RAM, ensuring smooth operation during heavy multitasking.
  • 【High-Capacity Dual M.2 SSD Storage Expansion】 Never worry about running out of space for your business files. In addition to the pre-installed 256GB system drive, the motherboard houses an extra empty internal M.2 2280 NVMe PCIe 3.0 slot. This allows you to easily add a second solid-state drive for up to an additional 2TB of storage capacity (upgrades not included) without needing to remove or reinstall the original operating system.
  • 【Radeon 6-Core Graphics & Triple 4K Displays】 Integrated with official AMD Radeon Graphics (6 Graphics Cores, 1500 MHz frequency) for casual gaming, photo editing, and crisp 4K media decoding. Featuring 1x HDMI 2.0 port, 1x DisplayPort, and 1x Full-Function Type-C port, the E5 outputs true 4K@60Hz resolution to three monitors at once. This multi-screen setup eliminates constant window-switching for traders, programmers, and office workers.
  • 【Dual 2.5GbE LAN Ports for Advanced Networking】 Experience fast wired network transmission speeds up to 2500Mbps without lagging or buffering. The integration of dual 2.5 Gigabit Ethernet ports (powered by Realtek RTL8125 controller) makes this compact computer an exceptional hardware choice for tech enthusiasts. Easily configure it into software routers, hardware firewalls (pfSense, OpnSense), home NAS servers, or local homelabs.

Choose and size an India VPS for the workload

India-region compute is available in more than one location; AWS lists both Mumbai and Hyderabad regions. Pick a location based on where your users or target sites are, and on your own latency needs. The available evidence does not establish a provider winner, current instance price, recommended instance family, or regional performance ranking.

Size the server from a representative sample rather than a rule of thumb:

Rank #4
Sale
Bmax Mini PC B1 Plus, Intel Celeron J3355 (Up to 2.5GHz), 6GB RAM 128GB eMMC Support M.2 SSD Expansion (512GB/2TB), 4K Dual Display 2.4G/5G WiFi & BT5.0 Mini Desktop Computer for Home/Office
  • 【Powerful & Efficient Performance】Powered by the Intel Celeron J3355 Processor (up to 2.5GHz), this Mini PC delivers a 25% performance boost over previous generations. Pre-installed with Windows 11 Home and supporting Linux/Ubuntu, it’s the ideal micro desktop for seamless web browsing, document editing, and efficient daily office tasks.
  • 【Massive Storage & Unique Expansion】Equipped with 6GB LPDDR3 RAM and 128GB onboard storage for fast boot-ups. Stand out with our dual M.2 SSD slot design (1x SATA + 1x NVMe), allowing you to easily expand storage up to 2TB without replacing the original drive. Perfect for managing large digital libraries and intensive multitasking.
  • 【Stunning 4K Dual HDMI Display】Boost your productivity with Intel HD Graphics 500 and dual HDMI ports, supporting 4K @60Hz high-definition visuals. Connect two monitors simultaneously to streamline your workflow—ideal for home office setups, stock trading, or enjoying a theater-like 4K media experience.
  • 【Ultra-Compact & Space-Saving Design】Measuring only 4.2x4.1x1.4 inches and weighing just 0.49 lbs, this palm-sized mini computer fits anywhere. Use the included VESA bracket to mount it behind your monitor for a zero-clutter workspace. Features a smart silent fan and heat sink system for quiet, reliable 24/7 operation.
  • 【Stable Connectivity & Smart Recovery】Stay connected with Dual-Band WiFi (2.4G/5G), Bluetooth 5.0, and Gigabit Ethernet. Exclusive One-Click Restore feature (via F9 key) allows for quick system recovery in minutes. Backed by Bmax's 12-month warranty and lifetime technical support for a worry-free purchase.
  1. Run a small sample of the actual URL mix using the intended viewport, full-page setting, and readiness rules.
  2. Watch CPU and memory while several pages run, and note peak use and whether pages fail or slow down as concurrency rises.
  3. Check screenshot storage growth and outbound bandwidth, then estimate them for the batch size you need.
  4. Increase concurrency in measured steps only while the server remains stable and capture failures stay acceptable. There is no sourced universal number of screenshots per hour or safe parallel-page count.
  5. Compare providers’ current prices and operational controls yourself, including whether you can keep Chrome dependencies installed and its sandbox enabled.

Make batch runs more reliable and affordable

  • Keep the browser process open across the batch and create/close pages per job, as in the script, rather than launching a browser for every URL. Always close the browser in a cleanup path.
  • Keep work bounded. For very large input lists, use a persistent queue or process smaller batches so one interruption does not erase all progress.
  • Use per-navigation timeouts and, if your job runner needs a hard ceiling, a separate overall job deadline. Log status and error text for each URL so failed pages can be retried selectively.
  • Choose collision-resistant output names and ensure the destination has enough space. Full-page captures can vary greatly in image dimensions and file size.
  • Measure the real URL mix before raising concurrency: sites differ in load behavior and resource use. No benchmark or safe concurrency limit is established for all VPS configurations.
  • Do not mistake a successful navigation for a useful capture. Inspect a sample for blank pages, blocked content, consent banners, or incomplete lazy-loaded content, then tune readiness behavior for those sites.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common errors and fixes

Symptom Likely cause What to do
Browser executable not found Install scripts were blocked or the browser download did not complete. Check the Puppeteer installation and browser setup instructions, install the compatible browser explicitly if needed, then rerun the launch test.
Chrome exits with missing-library messages The VPS image lacks shared libraries or fonts needed by Chrome. Use the dependencies listed for Debian/Ubuntu in Puppeteer’s troubleshooting guide; inspect the Chrome executable with ldd /path/to/chrome | grep not.
Launch fails with a sandbox error The host is not configured for Chrome’s sandbox. Fix the host configuration and keep the sandbox enabled. Do not treat --no-sandbox as the routine fix.
Navigation times out The site is slow, hangs, or never reaches the selected readiness condition. Check the URL from the VPS, use a timeout appropriate to the workload, and select a site-appropriate readiness condition. For persistent network activity, waiting for network idle may be unsuitable.
Screenshot is blank or misses content The page may render late, require a selector or asset wait, or defer images until scrolling. Inspect a sample and add targeted waiting or scrolling logic for that site before capture; do not assume navigation completion means all content is visible.
VPS slows or jobs fail as volume rises Concurrent pages may exceed the server’s available CPU, memory, or bandwidth. Reduce concurrency, batch the queue, and measure resource use before increasing it again.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. Its one-request API can return a screenshot or PDF, and the parameters used by other screenshot APIs also work, which can make switching easier. For a single capture:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for setup and options. ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and responses identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for the free plan.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Can I use this approach with a URL list containing hundreds of sites?

Yes. The example reads a newline-separated list and processes it with a bounded worker pool; for very large batches, persist or checkpoint the queue so an interruption does not discard completed work.

Best Value
Sale
GMKtec Mini PC, G3 Ultra Intel Pentium Gold 7505 16GB LPDDR4 RAM 512GB SSD
  • WHY CHOOSE G3 ULTRA MINI PC PENTIUM GOLD 7505 - Choose the Intel Pentium Gold 7505 for snappier everyday responsiveness: It delivers up to 30% faster single-core performance than the Ryzen 5 3500U, making office apps and web browsing feel noticeably quicker, while its Intel UHD Graphics (48 EUs) provides 2.4x the GPU performance of the N100 & N150's 24-EU graphics, ensuring smoother 4K streaming and light photo editing.
  • 16GB RAM MEMORY & 512GB STORAGE - GMKtec Nucbox G3 Ultra mini computer is prebuilt with 16GB LPDDR4 RAM at 3200 MT/s, you will enjoy a speedier experience with Built-in 512GB M.2 SATA Hard Drive. Our mini desktop pc boots up in seconds, work on multiple browser tabs, software applications and quickly transfers files. There is a primary slot and secondary expansion storage. Primary slot is M.2 2280 PCIE and secondary slot is M.2 2280 SATA.
  • RICH INTERFACE - Nucbox pentium mini computer is equipped with 3* USB 3.2 Gen2 ports, up to 10Gbps/S, 1*USB 2.0, HDMI(4K@60Hz)*2, 3.5mm Audio Jack. Supports WiFi 6, and Gigabit Ethernet RJ45 2.5GbE network connectivity, Bluetooth 5.2. This Mini PC supports multiple device connection and can be used with servers, monitoring equipment, office equipment, displays, projectors, televisions, etc.
  • 4K DUAL SCREEN DISPLAY - Mini desktop computer is equipped with upgraded Intel Graphics(max 1000MHz), supports 4K video playback and AV1 decoding, connect the pc with a projector as a home theatre, enjoy a variety of entertainments. Two HDMI 2.0 ports allows you to multi-task efficiently on two 4K@60Hz displays.
  • UPGRADED COOLING FAN - The G3 Ultra has upgraded the cooling fan to reduce fan noise and thermals. We are using an upgraded thermal paste as well to help reduce heat on the CPU.

Does an India VPS make screenshots faster for every website?

Not necessarily. The VPS region is one factor among network paths, site response time, page weight, and server load; measure your target URLs from the location you choose.

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.