shot-scraper
A CLI utility for taking screenshots of websites, recording video demos and scraping sites using JavaScript
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-scraperuv
uv add shot-scraperpoetry
poetry add shot-scraperInstalling 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
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
robocorp-browserA wrapper around Playwright that automates…
permissive · top 15,000 on PyPI
nokapnokap captures screenshots and PDFs from web…
permissive · top 15,000 on PyPI
pyppeteerAutomates headless Chrome/Chromium browser…
permissive · top 5,000 on PyPI
screenshotoneA Python SDK for the ScreenshotOne.com API that…
permissive · top 15,000 on PyPI
pytest-playwright-visualA pytest plugin that captures and compares…
permissive · top 15,000 on PyPI
pytest-playwright-asyncioA pytest plugin that integrates Playwright…
permissive · top 15,000 on PyPI
MechanicalSoupMechanicalSoup automates interaction with…
permissive · top 15,000 on PyPI
abx-dlA CLI tool that auto-detects and downloads…
permissive · top 15,000 on PyPI
savepagenowWrapper and CLI tool to submit URLs to…
permissive · top 15,000 on PyPI
recipe-scrapersExtracts structured recipe data (ingredients,…
permissive · top 15,000 on PyPI