MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / sampleVideoDom

Function sampleVideoDom

packages/cli/src/capture/mediaCapture.ts:351–373  ·  view source on GitHub ↗
(
  page: Page,
  budgetMs: number,
  netSet: Set<string>,
)

Source from the content-addressed store, hash-verified

349 */
350// fallow-ignore-next-line complexity
351async function sampleVideoDom(
352 page: Page,
353 budgetMs: number,
354 netSet: Set<string>,
355): Promise<VideoDescriptor[]> {
356 const seen = new Map<string, VideoDescriptor>();
357 const start = Date.now();
358 let stale = 0;
359 while (Date.now() - start < budgetMs && stale < 3) {
360 let grew = false;
361 const netBefore = netSet.size;
362 for (const d of await scanVideoDom(page)) {
363 if (!seen.has(d.src)) {
364 seen.set(d.src, d);
365 grew = true;
366 }
367 }
368 if (netSet.size > netBefore) grew = true;
369 stale = grew ? 0 : stale + 1;
370 await new Promise((r) => setTimeout(r, 2000));
371 }
372 return [...seen.values()];
373}
374
375/**
376 * Capture video element manifest — screenshot each <video> element, extract

Callers 1

captureVideoManifestFunction · 0.85

Calls 3

scanVideoDomFunction · 0.85
nowMethod · 0.80
setMethod · 0.65

Tested by

no test coverage detected