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)