Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteUse getDownloadUrl(browser, platform, buildId, baseUrl?) from @puppeteer/browsers to get the browser archive URL as a JavaScript URL object. Supply the browser distribution, platform, and build ID for the archive you want; set the optional base URL to change its download host. The API is safer than constructing an archive URL by hand because the documented reference does not give one universal path template for every browser and platform. Puppeteer API reference.
Get the URL with getDownloadUrl
Install or otherwise make @puppeteer/browsers available in your project, then pass the intended browser, platform, and build ID to the function. The exact enum or string values available for those arguments depend on the package version; use values accepted by the version installed in your project. The returned value is a URL, so use .href when you need its serialized URL.
import { getDownloadUrl } from '@puppeteer/browsers';
const browser = 'chrome';
const platform = 'linux64';
const buildId = 'YOUR_BUILD_ID';
const downloadUrl = getDownloadUrl(browser, platform, buildId);
console.log(downloadUrl.href);
Replace YOUR_BUILD_ID and the example platform with a build and platform supported for the browser you selected. This example demonstrates the call shape; it does not assert that a particular build exists or is available for every platform.
What determines the download URL?
- Browser: selects the browser distribution, such as Chrome for Testing or Firefox.
- Platform: selects the platform-specific archive. A URL for one platform is not interchangeable with another.
- Build ID: identifies a particular browser build. Puppeteer’s installation documentation describes build IDs as unique identifiers used for binaries and caching.
- Base URL: optionally changes the host or prefix used to locate the archive.
These inputs are tied together: use the build ID and platform that correspond to the browser archive you intend to retrieve. The API reference documents the function’s inputs and return value, but not a single path formula that can safely be assembled for every browser and platform.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- google search
- google map
- google plus
- youtube music
- youtube
Change the download host
Pass a base URL directly
If you are calling the API to obtain a URL and need a different host, supply the optional fourth argument:
import { getDownloadUrl } from '@puppeteer/browsers';
const downloadUrl = getDownloadUrl(
'chrome',
'linux64',
'YOUR_BUILD_ID',
'https://downloads.example.com/chrome-for-testing'
);
console.log(downloadUrl.href);
The host must serve a compatible archive for the selected browser, platform, and build. Puppeteer’s install documentation allows alternative download providers but says they are not officially supported; you are responsible for compatibility and testing. Do not assume that changing the host alone makes an arbitrary archive usable.
Rank #2
- Google search engine.
Configure installation downloads
When the goal is to install a browser rather than inspect its URL, use the installation workflow’s baseUrl option. Puppeteer also provides browser-specific package configuration, including downloadBaseUrl. For Chrome, the documented default host is https://storage.googleapis.com/chrome-for-testing-public; its configuration can be overridden with PUPPETEER_CHROME_DOWNLOAD_BASE_URL. The documented Firefox default is https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central. Consult the relevant install options and configuration guide for the package version and browser in use.
A configured base URL must include a protocol and should not end with a trailing slash, according to Puppeteer’s configuration documentation. Prefer installation configuration when you want Puppeteer’s installer to use a host; call getDownloadUrl when your code specifically needs the resolved archive URL as a value.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
- Voice search enabled
- Clean and simple to use
- Max speed and compatibility for your Kindle device
When automatic browser download does not happen
A package installation may not fetch a browser if the package manager blocks install scripts. Puppeteer documents npx puppeteer browsers install as a manual installation route. It also describes puppeteer-core as the package option without an automatic Chrome download. See the installation guide.
- Check whether your package manager allowed Puppeteer’s installation scripts to run.
- If the browser is missing, run
npx puppeteer browsers installin the project environment. - If you chose
puppeteer-core, account for browser installation yourself; it does not automatically download Chrome. - If you use a custom host, confirm it serves the compatible browser, build, and platform archive.
Proxy, cache, and archive verification
- Proxy: Puppeteer documents
HTTP_PROXY,HTTPS_PROXY, andNO_PROXYfor proxy configuration. The@puppeteer/browserspackage requires the optionalproxy-agentpeer dependency for proxy support. - Cache: build IDs identify binaries and are used for caching in the installation workflow. Check that the requested build ID is the one you intend to install.
- Integrity check: the install API accepts an optional
expectedHashfor a SHA-256 archive check. Use it when you have the expected archive hash from a trusted source.
See the install options reference for the supported options.
Rank #4
- Get access to files anywhere through secure cloud storage and file backup for your photos, videos, files and more with Google Drive.
Troubleshoot a URL or download problem
| Symptom | Likely cause | What to check |
|---|---|---|
| The URL points to an unexpected archive or host | The browser, platform, build ID, or base URL does not match your intent. | Review all arguments to getDownloadUrl and any installation-level or browser-specific base URL configuration. |
| No browser was downloaded during package installation | Install scripts may have been blocked, or the project uses puppeteer-core. |
Check package-manager script settings and use npx puppeteer browsers install if needed. |
| A download fails on a network that requires a proxy | Proxy environment variables may be absent, or the optional proxy dependency may not be installed. | Configure HTTP_PROXY, HTTPS_PROXY, or NO_PROXY as appropriate and ensure proxy-agent is available. |
| A custom host does not provide a usable browser | The provider may not have a compatible archive for the requested browser, platform, and build. | Verify the provider’s archive compatibility; alternative providers are not officially supported by Puppeteer. |
| The archive does not match the expected build | A different build was requested or the retrieved archive is not the expected one. | Use the intended build ID and, where appropriate, configure the install API’s expectedHash. |
Or skip the browser setup
If your goal is a website image rather than a Puppeteer-controlled browser archive, ScreenshotNeo offers a website screenshot API. One GET request can return a PNG, JPEG, WebP, or PDF. Cookie banners, newsletter popups, and chat widgets are removed before capture; bot checks, blank pages, failed loads, and cache hits are not billed. Its MCP server gives AI agents tools to take screenshots, get page information, and capture PDFs.
Example request, with ScreenshotNeo API documentation:
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 reinstallcurl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The Free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Learn about ScreenshotNeo, or sign up for 1,000 free screenshots a month with no card.
Quick Recap
Best Value
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.

