All Projects → ashubham → Webshot Factory

ashubham / Webshot Factory

Web Screenshots at scale based on headless chrome

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Webshot Factory

Chromda
λ 🖼️ Chromda is an AWS Lambda function for capturing screenshots of websites.
Stars: ✭ 481 (+67.01%)
Mutual labels:  screenshot, puppeteer, chrome-headless
Lancia
网页转PDF渲染服务。提供收据、发票、报告或任何网页内容转PDF的微服务
Stars: ✭ 108 (-62.5%)
Mutual labels:  screenshot, puppeteer, chrome-headless
screenie-server
A Node server with a pool of Puppeteer (Chrome headless) instances for scalable screenshot generation.
Stars: ✭ 19 (-93.4%)
Mutual labels:  screenshot, chrome-headless, puppeteer
Chart To Aws
Microservice to generate screenshot from a webpage and upload it to a AWS S3 Bucket.
Stars: ✭ 43 (-85.07%)
Mutual labels:  screenshot, puppeteer, chrome-headless
Api
API that uncovers the technologies used on websites and generates thumbnail from screenshot of website
Stars: ✭ 189 (-34.37%)
Mutual labels:  screenshot, chrome-headless
Site Scan
CLI for capturing website screenshots, powered by puppeteer.
Stars: ✭ 137 (-52.43%)
Mutual labels:  screenshot, puppeteer
puppet-master
Puppeteer as a service hosted on Saasify.
Stars: ✭ 25 (-91.32%)
Mutual labels:  screenshot, puppeteer
puppeteer-loadtest
load test puppeteer (Headless Chrome API) script using node
Stars: ✭ 107 (-62.85%)
Mutual labels:  chrome-headless, puppeteer
Page2image
📷 page2image is a npm package for taking screenshots which also provides CLI command
Stars: ✭ 66 (-77.08%)
Mutual labels:  screenshot, puppeteer
Viewfinder
📷 BrowserBox - Remote isolated browser API for security, automation visibility and interactivity. Run on our cloud, or bring your own. Full scope double reverse web proxy with multi-tab, mobile-ready browser UI frontend. Plus co-browsing, advanced adaptive streaming, secure document viewing and more! But only in the Pro version. Get BB today! Se…
Stars: ✭ 1,741 (+504.51%)
Mutual labels:  chrome-headless, puppeteer
browser-automation-api
Browser automation API for repetitive web-based tasks, with a friendly user interface. You can use it to scrape content or do many other things like capture a screenshot, generate pdf, extract content or execute custom Puppeteer, Playwright functions.
Stars: ✭ 24 (-91.67%)
Mutual labels:  screenshot, puppeteer
omg image
Generate PNG previews for HTML snippets (html/css/js). Any complexity.
Stars: ✭ 28 (-90.28%)
Mutual labels:  screenshot, chrome-headless
screenshot
A screenshot API to convert web to image or PDF. Supports desktop and mobile views.
Stars: ✭ 108 (-62.5%)
Mutual labels:  screenshot, puppeteer
Puppeteer Dart
A Dart library to automate the Chrome browser over the DevTools Protocol. This is a port of the Puppeteer API
Stars: ✭ 92 (-68.06%)
Mutual labels:  screenshot, puppeteer
Dhalang
Generate PDFs and make screenshots of HTML using Puppeteer in Ruby
Stars: ✭ 41 (-85.76%)
Mutual labels:  screenshot, puppeteer
Go Stare
A fast & light web screenshot without headless browser but Chrome DevTools Protocol!
Stars: ✭ 87 (-69.79%)
Mutual labels:  screenshot, chrome-headless
mugshot
Framework independent visual testing library
Stars: ✭ 126 (-56.25%)
Mutual labels:  screenshot, puppeteer
vrt-react
Take a screenshot 📸 of React component. Push it and compare images in pull request.
Stars: ✭ 19 (-93.4%)
Mutual labels:  screenshot, puppeteer
Dark Mode Screenshot
This Puppeteer script takes a 📷 screenshot of a webpage in 🌞 Light and 🌒 Dark Mode.
Stars: ✭ 47 (-83.68%)
Mutual labels:  screenshot, puppeteer
jest-puppe-shots
A Jest plugin for creating screenshots of React components with a little help of Puppeteer
Stars: ✭ 86 (-70.14%)
Mutual labels:  screenshot, puppeteer

webshot-factory

Build Status npm version

Webshot Factory

screenshots at scale based on headless chrome.

Basic Concept

  • Webshot-factory creates a number of headless-chrome worker instances which take screenshots in round robin. Thus, can be horizontally scaled to provide good throughput.
  • Includes a debug status page to monitor the worker instances.
  • Can be used for batch report generation.
  • Or to take a number of screenshots in general.
  • Written in Typescript (types bundled).

Installation

npm i webshot-factory

Usage

import * as shotFactory from 'webshot-factory';

await shotFactory.init({
    // Number of worker threads (chrome instances) to run.
    // A shot is assigned to a worker in round robin.
    concurrency: 10,

    // The callback method to be exposed on the window, 
    // which would be called by the application
    // Shot will be taken when callback is called.
    // This was 'callPhantom' in PhantomJS.
    callbackName: '',

    // A cache warmer url, 
    // so that workers can cache the webpage scripts.
    warmerUrl: 'http://google.com',
    width: 1000, // shot width
    height: 600, // shot height
    timeout: 60000, // timeout (millis) to wait for shot.
    webshotDebugPort: 3030 // Port where the status page is served.
    // To use Puppeteer with a different version of Chrome or Chromium,
    chromeExecutablePath: '/path/to/Chrome'
});

// Once initialized, just call getShot and
// a shot will be scheduled on a worker
// chrome instance.
shotFactory.getShot('http://yahoo.com').then(buffer => {
    // Do whatever with the buffer, can be used to email to recipients.
    console.log(buffer);
    // Or can be saved to a file.
    // Using the `fs` module.
    fs.createWriteStream('shot.png')
        .write(buffer)
        .end();
});

Status Page

Webshot-factory includes a status page to check the status of the running chrome instance workers.

Visit: http://<host>:<webshotDebugPort>/status

Note: The default port is 3030.

To check the status and debug any problems. The page looks like this:

Webshot Factory status
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].