Automation and scraping · Edition No. 3 · 28 Aug 2026

simonw/shot-scraper

One YAML file regenerates every screenshot on the site — and since v1.10 it records WebM demo clips too.

← Automation and scrapingRead the whole edition →
02

simonw/shot-scraper

💎 hidden gem

2.6k stars · Apache-2.0 · 1.11 (2026-07-12) · Track this in Scout

One YAML file regenerates every screenshot on the site — and since v1.10 it records WebM demo clips too.

▶Repo detailsthe review · specs · pros & cons · install

What it is

A command-line tool that drives a headless browser to take screenshots of web pages, from a single URL or from a YAML file describing dozens of shots. Version 1.10 added video recording, so the same file can also produce short WebM clips of a scripted interaction.

What it is good for. Every marketing site quietly rots: you ship a UI change and the screenshots on your landing page, your docs and your README are suddenly of software that no longer exists. Nobody hand-fixes twenty screenshots, so they simply stay wrong, and a stale screenshot reads as an abandoned product to a first-time visitor. Describe the shots once in a YAML file and regenerating all of them is one command — which means it can run automatically whenever you deploy. It is also the cheapest way to get bilingual assets: point the same shot list at ?lang=ru and you have a complete Russian screenshot set for free.

Stars2.6k
LicenceApache-2.0
Latest1.11 (2026-07-12)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
4 / 5
Good
  • Apache-2.0, pure Python — drops into an existing virtual environment with no new runtime
  • Runs unattended in CI, so screenshots refresh on every deploy instead of never
  • Can log in first and shoot authenticated pages — which is where most apps keep their good screens
Watch for
  • Needs Playwright plus a headless Chromium download — a few hundred MB before the first shot
  • Chromium is memory-hungry; run it on a workstation or in CI, not on the VPS serving users
  • Getting a login-protected shot right takes a fiddly first hour of scripting
Install
pip install shot-scraper
Screenshots
simonw/shot-scraper: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.