Skip to content

Screen capture puppeteer pages using either CDP tools or fmmpeg's x11grab

Notifications You must be signed in to change notification settings

kldzj/puppeteer-stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Using this package you are able to screen capture your puppeteer pages.

Installation

To use this package a ffmpeg binary needs to be available. You can obtain it from here or using the ffmpeg-static package.

Using yarn:

$ yarn add @kldzj/puppeteer-stream

Using npm:

$ npm i -S @kldzj/puppeteer-stream

Usage

View the examples on how to use this package.

Notes on using the x11 recorder

When using the x11 recorder it is recommended to render to a xvfb server.

$ export DEBUG=puppeteer-stream:*
$ xvfb-run -s "-screen 0 1920x1080x24" yarn ts-node examples/x11.ts

Code

const browser = await puppeteer.launch();
const page = await browser.newPage();

// https://github.com/puppeteer/puppeteer/issues/6904
const streamer = new PuppeteerStreamer(page as unknown as Page, {
  // ffmpegPath: '/path/to/ffmpeg',
  output: {
    format: 'mp4',
    path: join(process.cwd(), 'output.mp4'),
  },
  frameSize: {
    width: 1280,
    height: 720,
  },
  fps: 30,
});

// navigate page
await page.goto('https://example.com');

// start recording
await streamer.start();

// do something
await page.waitFor(1000);

// stop recording
await streamer.stop();

// finish up
await browser.close();