shot-scraper
A CLI utility for taking screenshots of websites, recording video demos and scraping sites using JavaScript
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Low friction install with a pure Python wheel.
License · maintenance · safety
Apache-2.0 (permissive) — 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.
last release 2026-07-12 (33 days) · last repo commit 2026-07-12 · 2,546 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 166,497 downloads/mo, #10,492 on PyPI
Alternatives
Verify before relying
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- 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
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 on it.
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
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.
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.
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
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 packagesclickpyyamlpydanticplaywrightclick-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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “automated website screenshots”
- shot-scraperA CLI tool that automates taking screenshots of websites, recording…
- screenshotoneA Python SDK for the ScreenshotOne.com API that takes screenshots of…
- spider-clientPython SDK for the Spider Cloud API that enables website scraping,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also robocorp-browser · nokap · pyppeteer · screenshotone · pytest-playwright-visual · pytest-playwright-asyncio · MechanicalSoup · abx-dl · savepagenow · recipe-scrapers