Skip to content

udivankin/puppeteer-batch-screenshots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Puppeteer-batch-screenshots

Make screenshots of your websites in batch.

Let's say you have to make 100 web page screenshots in a row daily. The most of CLI-enabled screenshot tools allow you to make one single screenshot at a time, which means every time the new Node + Chrome instance gets initialised. This tool saves a good amount of time by batching these tasks.


Tool based on puppeteer.

Installation and Usage:

npm i -g puppeteer-batch-screenshots
puppeteer-batch-screenshots config.json

alternatively you can install it as a local dependency

mkdir my-perfect-screenshoot-tool && cd my-perfect-screenshoot-tool
npm init -y
npm i puppeteer-batch-screenshots
node ./node_modules/puppeteer-batch-screenshots/index.js config.json

Example config:

[
  // You can put multiple tasks here, each carrying custom settings
  {
    // Viewport width, defaults to 1280
    width: 1440,
    // Viewport height, defaults to 800
    height: 900,
    // Whether it shoud make screenshot of the whole page content
    fullPage: false,
    // Device to emulate, see full list at
    // https://pptr.dev/next/api/puppeteer.knowndevices
    emulate: 'iPhone 13 Pro Max landscape',
    // Auth username and password for HTTP basic auth
    auth: 'username;password',
    // Number in ms to wait for
    waitForTimeout: 500,
    // Or alternatively CSS selector (e.g. ".footer") to wait to appear
    waitForSelector: 'body',
    // CSS selector of element to take screenshot of
    element: '#main',
    // Each task can have multiple routes
    routes: [
      {
        // Web page URL
        url: 'http://example.com/1',
        // Output field is being evaluated to enable template literals
        // Supported file extensions: PNG, JPEG/JPG and PDF
        output: './screenshots/example-1-${new Date().toISOString()}.png',
      },
    ],
  },
];

License

This project is licensed under the MIT License