From 45b84b7fcd35ee1352301323e5afac1963f6df45 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Wed, 18 Dec 2024 14:34:02 +0100 Subject: [PATCH] add workaround for manually-created ffmpeg archive --- packages/playwright-core/src/server/registry/index.ts | 1 + .../src/server/registry/oopDownloadBrowserMain.ts | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/playwright-core/src/server/registry/index.ts b/packages/playwright-core/src/server/registry/index.ts index fad5db00e0..7a53860f96 100644 --- a/packages/playwright-core/src/server/registry/index.ts +++ b/packages/playwright-core/src/server/registry/index.ts @@ -762,6 +762,7 @@ export class Registry { const ffmpeg = descriptors.find(d => d.name === 'ffmpeg')!; const ffmpegExecutable = findExecutablePath(ffmpeg.dir, 'ffmpeg'); + console.log(ffmpegExecutable) this._executables.push({ type: 'tool', name: 'ffmpeg', diff --git a/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts b/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts index d764fe2d9f..1badbcb701 100644 --- a/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts +++ b/packages/playwright-core/src/server/registry/oopDownloadBrowserMain.ts @@ -150,7 +150,13 @@ async function downloadAndExtractBrotli(options: DownloadParams) { await pipeline( response, createBrotliDecompress(), - tarFs.extract(options.browserDirectory) + tarFs.extract(options.browserDirectory, { + map(header: { name: string }) { + // manually-created ffmpeg archive has files nested in subdirectory + if (header.name.startsWith('ffmpeg-')) + header.name = header.name.substring(header.name.indexOf('/')); + } + }) ); if (downloadedBytes !== totalBytes)