Playhead

Getting started

Install Playhead, point it at a running app, and get a verified video. Five commands, about ten minutes including the one-time downloads.

Install

npm install -g playhead-cli
npx playwright install chromium
playhead doctor

The middle line matters: Playhead films your app in a real browser, and npm does not download one for you. playhead doctor confirms ffmpeg, the browser, and fonts are all present before you spend a render finding out.

If ffmpeg comes up missing, your npm config almost certainly sets ignore-scripts=true, which skips the download ffmpeg-static performs on install. Reinstall with --ignore-scripts=false, or point PLAYHEAD_FFMPEG at an ffmpeg you already have.

Your first video

Start the app you want to film, then ask Playhead what is on the page. You never hand-write a locator — explore reads them off the live DOM for you.

playhead explore http://localhost:3000

Copy the locators you care about, scaffold a spec grounded in the same app, check it, and render:

playhead init demo.yaml --url http://localhost:3000
playhead validate demo.yaml
playhead render demo.yaml -o out

You get out/out.mp4, the re-renderable capture bundle in out/capture/, a verdict at out/verify/verdict.json, and a contact sheet of key moments so you can trust the result without watching it end to end.

In a hurry

playhead demo http://localhost:3000 "create a new deal" -o out --open

One command: it authors the spec, validates every locator, renders, verifies, and opens the video. It works without an API key — in that case it explores your app and scaffolds a grounded spec rather than guessing.

Then iterate for free

Captions, narration and theme are applied when the video is composed, never during capture. Editing words is a re-compose, not a re-recording:

playhead compose out/capture --spec demo.yaml -o out2 --watch

Leave that running, save the spec, and a new video appears in seconds.