Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
wibbitz-puppeteer-screen-recorder
Advanced tools
A puppeteer Plugin that uses the native chrome devtool protocol for capturing video frame by frame. Also supports an option to follow pages that are opened by the current page object
A puppeteer Plugin that uses the native chrome devtool protocol for capturing video frame by frame. Also supports an option to follow pages that are opened by the current page object. Check out API Docs.
Automatically follows pages (multiple pages) which are opened at runtime, which will be part of video capturing. Also support options to disable the default flow.
FFMPEG library's installation and configuration are automatically managed by the library internally. Also offers options to configure with custom library path.
This plugin works directly with native chrome devtool protocol to capture the video under the wood without any other thirdparty puppeteer plugins for screen capturing.
Adopted Chromium principles such as Speed, Security, Stability and Simplicity. It also ensures no frames are missed during video capturing and doesn't impact the performance, since its doesn't use any other puppeteer plugin internally.
Using Npm
npm install puppeteer-screen-recorder
Using Yarn
yarn add puppeteer-screen-recorder
1. Import the plugin using ES6 or commonjs.
// ES6
import { PuppeteerScreenRecorder } from 'puppeteer-screen-recorder';
// or commonjs
const { PuppeteerScreenRecorder } = require('puppeteer-screen-recorder');
2. Setup the Configuration object.
const Config = {
followNewTab: true,
fps: 25,
ffmpeg_Path: '<path of ffmpeg_path>' || null,
videoFrame: {
width: 1024,
height: 768,
},
aspectRatio: '4:3',
};
- followNewTab : Boolean value which is indicate whether to follow the tab or not. Default value is true.
- fps: Numeric value which denotes no.of Frames per second in which the video should be recorded. default value is 25.
- ffmpeg_Path: String value pointing to the installation of FFMPEG. Default is null (Automatically install the FFMPEG and use it).
- videoFrame: An object which is to specify the width and height of the capturing video frame. Default to browser viewport size.
- aspectRatio: Specify the apsect ratio of the video. Default value is
4:3
.
3. create a new instance of video recording
const recorder = PuppeteerScreenRecorder(page, Config); // Config is optional
// or
const recorder = PuppeteerScreenRecorder(page);
- page: Puppeteer page object which needs to captured.
- config: Config is an optional object. Default value is
{ followNewTab: true, fps: 25, ffmpeg_Path: null }
4. Start Video capturing
const SavePath = './test/demo.webm';
await recorder.start(savePath);
savePath: string value indicating the directory on where to save the video. The path must also specify the name of the video with extension .webm (example - ./test/puppeteer-demo.webm)
5. Stop the video capturing.
await recorder.stop();
const puppeteer = require('puppeteer');
const { PuppeteerScreenRecorder } = require('puppeteer-screen-recorder');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const recorder = new PuppeteerScreenRecorder(page);
await recorder.start('./report/video/simple.webm'); // video must have .webm as an extension.
await page.goto('https://example.com');
await page.goto('https://test.com');
await recorder.stop();
await browser.close();
})();
Some of the frequently asked question about puppeteer screen recording are
Q: Does it support Chrome in headless mode?
Yes, it supports Both headless and headFul mode.
It records full length video, frame by frame even when Chrome runs in headless mode.
Q: Does it use the window object?
No, it's not tied to the window Object.
Q: Does it follows pages which are opened at runtime
Yes, it automatically follows pages which is created at runtime.
Q: is there an option to disable video recording for new page created and record video only for the page object passed
Yes, By setting the options.followNewTab
to false, it record only video for the passed page object alone.
Q: Does it support to record video at 60 fps
Yes, video can be recorded at 60 fps. By setting options.fps
to 60.
Q:Does it use the window object?
No, it doesn't use the window object.
Q: Does it use FFMPEG internally?
Yes, it uses FFMPEG with optimized options to speed up the video recording using stream from chrome devtool protocol.
FAQs
A puppeteer Plugin that uses the native chrome devtool protocol for capturing video frame by frame. Also supports an option to follow pages that are opened by the current page object
The npm package wibbitz-puppeteer-screen-recorder receives a total of 2 weekly downloads. As such, wibbitz-puppeteer-screen-recorder popularity was classified as not popular.
We found that wibbitz-puppeteer-screen-recorder demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.