skillfed

shot-scraper

A CLI utility for taking screenshots of websites, recording video demos and scraping sites using JavaScript

shot-scraper v1.11 166.5K downloads/30d#10,492 on PyPI2,546
Permissive license Apache-2.0 Active released

What it is and what it does

shot-scraper is a command-line tool that wraps Playwright to automate the capture of website screenshots, video recordings, and JavaScript-based web scraping. It's designed for documentation workflows, CI/CD pipelines, and monitoring tasks where you need to programmatically capture visual or data snapshots of live web pages. The tool handles browser automation internally, so you don't need to write Playwright code directly—you invoke it via CLI commands or GitHub Actions.

The package depends on click for CLI scaffolding, pyyaml for configuration, pydantic for data validation, and Playwright for browser control. It requires Python 3.10 or later and a one-time browser installation step. The project is actively maintained, has no known vulnerabilities, and is used in production by news organizations, documentation sites, and data monitoring workflows.

Use it for:

  • Automatically generate and update screenshots in documentation as part of a CI/CD pipeline
  • Monitor news website homepages or competitor sites by capturing periodic screenshots and storing them in version control
  • Extract data from JavaScript-rendered pages without writing custom Playwright code
  • Create visual regression tests by comparing screenshots across releases
  • Build a Twitter bot or email newsletter that publishes periodic snapshots of web pages

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

A CLI tool that automates taking screenshots of websites, recording video demos, and scraping web pages using JavaScript execution via Playwright.

Yes, if you need to automate website screenshots or scrape JavaScript-rendered content from the command line. The low install friction, active maintenance, permissive license, and real-world production use (Reuters, Datasette, news bots) make it a solid choice. The main gotcha is the one-time Playwright browser installation, which adds disk space but is a one-line command. No security vulnerabilities reported.

Install

shot-scraper on PyPI

pip

pip install shot-scraper

uv

uv add shot-scraper

poetry

poetry add shot-scraper

Installing shot-scraper

Before you install

Low friction install with a pure Python wheel. Requires Playwright as a runtime dependency, which itself needs a browser binary installed via the `shot-scraper install` command after pip installation. Active maintenance with recent releases.

License in practice

Apache-2.0 is permissive; you can use this in commercial and proprietary projects with minimal restrictions, provided you include a copy of the license.

Quickstart

pip install shot-scraper
shot-scraper install
shot-scraper https://example.com/

Or in Python:
from shot_scraper import cli
# CLI is the primary interface; programmatic use requires direct invocation

Requires Python 3.10 or later. The `shot-scraper install` step downloads and installs a Playwright browser binary (Chromium, Firefox, or WebKit), which is a one-time setup but adds significant disk space.

Verify before relying

  • Whether the package supports headless execution in containerized or CI/CD environments without additional configuration
  • Performance characteristics when taking screenshots of complex or JavaScript-heavy pages
  • Whether video recording works with all three Playwright browser engines or only specific ones

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — click, pyyaml, pydantic, playwright, click-default-group
Maintenance actively maintained — 33 days since the last release
Last repo commit
First released
Downloads 166,497/month — #10,492 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: shot_scraper-1.11-py3-none-any.whl

Tags

automated website screenshotsCLI screenshot toolweb scraping javascriptplaywright automationheadless browser screenshotsvideo recording websitesdocumentation screenshot automation
web-automationcli-tooldocumentation

More Utilities packages