UNPKG

puppeteer-stream

Version:

An Extension for Puppeteer to retrieve audio and/or video streams of a page

73 lines (72 loc) 2.71 kB
/// <reference types="node" /> /// <reference types="node" /> import { LaunchOptions, Browser, Page, BrowserLaunchArgumentOptions, BrowserConnectOptions } from "puppeteer-core"; import { Transform } from "stream"; import WebSocket from "ws"; import { IncomingMessage } from "http"; type StreamLaunchOptions = LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions & { allowIncognito?: boolean; } & { closeDelay?: number; } & { extensionPath?: string; }; export declare const wss: Promise<WebSocket.Server<typeof WebSocket, typeof IncomingMessage>>; export declare function launch(arg1: StreamLaunchOptions | { launch?: Function; [key: string]: any; }, opts?: StreamLaunchOptions): Promise<Browser>; export type BrowserMimeType = "video/webm" | "video/webm;codecs=vp8" | "video/webm;codecs=vp9" | "video/webm;codecs=vp8.0" | "video/webm;codecs=vp9.0" | "video/webm;codecs=vp8,opus" | "video/webm;codecs=vp8,pcm" | "video/WEBM;codecs=VP8,OPUS" | "video/webm;codecs=vp9,opus" | "video/webm;codecs=vp8,vp9,opus" | "audio/webm" | "audio/webm;codecs=opus" | "audio/webm;codecs=pcm"; export type Constraints = { mandatory?: MediaTrackConstraints; optional?: MediaTrackConstraints; }; interface TabQueryOptions { active?: boolean; audible?: boolean; autoDiscardable?: boolean; currentWindow?: boolean; discarded?: boolean; groupId?: number; highlighted?: boolean; index?: number; lastFocusedWindow?: boolean; muted?: boolean; pinned?: boolean; status?: TabStatus; title?: string; url?: string | string[]; windowId?: number; windowType?: WindowType; } type TabStatus = "unloaded" | "loading" | "complete"; type WindowType = "normal" | "popup" | "panel" | "app" | "devtools"; export interface getStreamOptions { audio: boolean; video: boolean; videoConstraints?: Constraints; audioConstraints?: Constraints; mimeType?: BrowserMimeType; audioBitsPerSecond?: number; videoBitsPerSecond?: number; bitsPerSecond?: number; frameSize?: number; delay?: number; /** * Tab query options to target the correct tab, * see [Chrome's extensions documentation](https://developer.chrome.com/docs/extensions/reference/api/tabs#method-query) for more info. */ tabQuery?: TabQueryOptions; retry?: { each?: number; times?: number; }; streamConfig?: { highWaterMarkMB?: number; immediateResume?: boolean; closeTimeout?: number; }; } export declare function getExtensionPage(browser: Browser): Promise<Page>; export declare function getStream(page: Page, opts: getStreamOptions): Promise<Transform>; export {};