Tools

shot-scraper 1.10 adds storyboard-driven browser video recording

shot-scraper 1.10 introduces a new video command that records browser interactions defined by a storyboard YAML file using Playwright.

shot-scraper 1.10 adds storyboard-driven browser video recording

The shot-scraper 1.10 release adds a new command, shot-scraper video, which accepts a storyboard.yml file describing a routine to run against a web application and uses Playwright to record a video of that routine. The author has previously argued for the value of coding agents producing demos; this command is intended to help enable that workflow.

Practical example: a Datasette demo

The author produced an example video showing a still-in-development feature that creates new tables in Datasette from pasted CSV, TSV, or JSON data. The video was recorded with this command:

shot-scraper video datasette-bulk-insert-storyboard.yml --auth datasette-demo-auth.json --mp4

According to the documentation, the --auth JSON file contains a cookie used for authentication. The example storyboard YAML defines a sequence of actions against a local development server: opening URLs, clicks, form fills, waits and preview checks, ultimately verifying that rows were inserted and a new table page was reached.

Storyboard generation: GPT and Pydantic

The demo YAML storyboard was constructed entirely by GPT-5.5 xhigh running in Codex Desktop. The author used Pydantic both to define and validate the YAML format, which made the design easier to review.

The author notes that the --help output for the new command provides sufficient detail for a coding agent to use the tool — a pattern similar to bundling a SKILL.md directly inside the tool. The same approach was used previously for showboat and rodney.

Technical challenges and Playwright versions

shot-scraper is built on top of Playwright, and a central requirement was the ability to record browser sessions with enough control to produce high-quality demos. Earlier Playwright-produced videos included extra chrome useful for debugging tests but undesirable for product demos, and recordings sometimes began before the first URL loaded, producing a few white frames at the start.

Playwright 1.59 introduced a screencast mechanism offering finer-grained control over recording, but early screencasts were fixed at an 800px width. A pull request fixed that limitation; the fix landed in source but was not immediately in a release. The author reports that the fix shipped in playwright-python 1.61.0, which removed the remaining blocker and allowed the feature to be finished.

Development workflow: model-written code, documentation, iteration

The author says the implementation code was written by GPT-5.5 xhigh in Codex Desktop, and the model also generated documentation. That documentation provided a useful review frame: much of the design iteration came from reading the generated docs, identifying redundancies or inconsistencies, and asking for improved designs.

This is an example of a feature the author likely wouldn't have taken on without coding-agent support: the original issue was filed in February 2024, and finding the time to solve it among other projects was difficult.

Summary

shot-scraper 1.10's video command lets you record browser interactions defined in a storyboard YAML, producing demonstration videos via Playwright. Recent Playwright improvements, the use of a generative model (GPT-5.5 xhigh) to draft code and storyboards, and Pydantic validation were key to delivering the feature. The Datasette demo shows how to run the command against a local development server and record a complete workflow.

Tags: projects, python, yaml, ai, datasette, playwright, shot-scraper, generative-ai, llms, pydantic, coding-agents, agentic-engineering