puppeteer-stream
An Extension for Puppeteer to retrieve audio and/or video streams of a page
Installation
npm i puppeteer-stream
# or "yarn add puppeteer"
Usage
ES5 import
require("puppeteer-stream");
const puppeteer = require("puppeteer");
or ES6 import
import "puppeteer-stream";
import puppeteer from "puppeteer";
Notice
This will patch the launch method of puppeteer to start with this record extension and will add a page.getStream(options)
method to all pages.
This will only work in headful mode
The method page.getStream(options)
takes the following options:
{
audio: boolean;
video: boolean;
mimeType?: string;
audioBitsPerSecond?: number;
videoBitsPerSecond?: number;
bitsPerSecond?: number;
frameSize?: number = 20;
}
and returns a Promise<
Readable
>
Example
require("puppeteer-stream");
const puppeteer = require("puppeteer");
const fs = require("fs");
const file = fs.createWriteStream(__dirname + "/test.webm");
async function test() {
const browser = await puppeteer.launch({
defaultViewport: {
width: 1920,
height: 1080,
},
});
const page = await browser.newPage();
await page.goto("https://dl5.webmfiles.org/big-buck-bunny_trailer.webm");
const stream = await page.getStream({ audio: true, video: true });
console.log("recording");
stream.pipe(file);
setTimeout(async () => {
await stream.destroy();
file.close();
console.log("finished");
}, 1000 * 10);
}
test();