Free tools Windows power users keep installed
One-click scans. No signup required.
For a new Puppeteer page recording, use page.record(): its documented output is an MP4 stream, and the returned recorder is stopped with recorder.stop(). Puppeteer marks this API experimental. Treat page.screencast() as a legacy option: its reference calls it obsolete, specifies Chrome 153 or later, and requires ffmpeg. Those compatibility and dependency notes apply to screencast(), not automatically to record().
Which Puppeteer recording method should you use?
Choose page.record() for a new video-recording workflow if its experimental status and your installed Puppeteer/browser support are acceptable. Use page.screencast() only when maintaining existing code that depends on it, and plan to migrate. If you need a still image rather than motion, use page.screenshot().
As an Amazon Associate I earn from qualifying purchases.
| Method | Documented status | Output and defaults | Documented runtime notes | Use it for |
|---|---|---|---|---|
page.record(options) |
Experimental | MP4 video stream | Uses Chrome DevTools Protocol Page.startScreenRecording. The example accepts a path and stops with recorder.stop(). |
New page recordings when experimental behavior is acceptable. |
page.screencast(options) |
Obsolete/deprecated | WebM with VP9 at 30 FPS by default | The documented method requires Chrome 153+ and ffmpeg installed. | Existing code that needs maintenance while migration is planned. |
page.screenshot(options) |
Image capture method | Image file or buffer; options include image type, output path, and full-page capture | Captures a still, not a video. | Static page images rather than motion. |
The Puppeteer screencast reference says, “This API is now obsolete,” and directs readers to Page.record(). Because Puppeteer publishes versioned documentation, confirm behavior against the documentation for the Puppeteer version installed in your project.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsHow to record a video with Puppeteer using page.record()
The basic lifecycle is: start recording, perform page actions, stop the recorder, then close the browser. The returned ScreenRecording is documented as a ReadableStream<Uint8Array>; Puppeteer’s example writes the recording to a file by passing a path.
#1 Best Overall
- Start Puppeteer and navigate to the page. Use your existing browser and page setup, then navigate to the URL you want to capture.
- Start recording:
const recorder = await page.record({ path: 'recording.mp4' }); - Perform the actions to record. Interact with the page or let its animation run while the recorder is active.
- Stop the recording:
await recorder.stop(); - Close the browser after recording has stopped.
Minimal usage, following the official example:
const recorder = await page.record({ path: 'recording.mp4' });
// Interact with or otherwise operate the page.
await recorder.stop();
This is the documented usage pattern, not a guarantee that every installed Puppeteer/browser combination supports it. See the Page.record() reference and the ScreenRecording reference for the API details.
How does page.record() differ from page.screencast()?
The important differences are API status, documented file format, compatibility notes, and the stated ffmpeg dependency. The Chrome 153+ requirement and ffmpeg note appear on the screencast() reference. Do not transfer them to record(): the surfaced record() documentation describes MP4 output and the Chrome DevTools Protocol API it uses, but does not state a corresponding minimum Chrome version or ffmpeg requirement.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
The record() entry is experimental, so verify its availability in the API documentation matching your installed version. The explicit Chrome 153+ compatibility statement is for the documented screencast() method, not a general Puppeteer recording minimum.
Does Puppeteer screen recording need ffmpeg?
The page.screencast() reference says ffmpeg must be installed. The surfaced page.record() reference does not state that ffmpeg is required. If you are migrating away from screencast(), do not assume its runtime requirements describe the newer method; check the documentation corresponding to your installed Puppeteer version.
Rank #3
What recording options can you safely rely on?
Both recording methods accept an optional options object. The documented example for record() shows a path value, while the screencast example shows a recording path as well. The available reference details do not establish settings for bitrate, resolution, frame-rate overrides, quality, or maximum duration. Do not rely on those fields without checking the API reference for your installed version.
For still-image capture, page.screenshot() is a different API. Its documented options include image type, output path, and full-page capture; it does not record motion. See the Page.screenshot() reference for its image options.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Troubleshooting Puppeteer recordings
page.record()is unavailable or fails in your setup: Check the API documentation for the Puppeteer version installed in your project and its browser support. The method is experimental, and the surfaced reference does not establish a minimum Chrome version.page.screencast()fails because of an unsupported browser: The documented screencast method requires Chrome 153 or later. Confirm the actual browser version used by Puppeteer.page.screencast()reports an ffmpeg-related problem: The reference specifies that ffmpeg must be installed. Install it in the environment running the browser, or migrate topage.record()after confirming support.- The output is not the format you expected: The documented
record()output is an MP4 stream;screencast()defaults to WebM with VP9 at 30 FPS. Confirm which method your code invokes. - The file is missing or incomplete: Follow the lifecycle: await
recorder.stop()before closing the browser, and use the output path shown in the recording options. - You need a still rather than a video: Use
page.screenshot(); recording methods are intended for motion capture.
Or skip the browser setup
If you need a clean still screenshot instead of a video recording, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF; it is not a replacement for recording page motion. It accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets, with each cleanup step optional. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses include X-Page-Verdict and X-Billed headers. AI agents can use its MCP tools, including take_screenshot, get_page_info, and capture_pdf.
Recommended Free Tools
For API parameters and options, see the ScreenshotNeo documentation. This example saves a screenshot of the target page:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo includes 1,000 screenshots a month free with no card; paid plans start at $5 for 3,000. Sign up for free.
Best Value
Frequently Asked Questions
Can Puppeteer save a recording as MP4?
The documented output for page.record() is an MP4 video stream; pass a path such as recording.mp4 and stop the returned recorder with await recorder.stop().
Is page.screencast() still recommended for new code?
No. Its Puppeteer reference calls it obsolete and points to page.record(), which is marked experimental.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →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.




