timesnap

Node.js program that takes screenshots at smooth intervals of web pages with JavaScript animations

BSD-3-CLAUSE License

Downloads
3.6K
Stars
234
Committers
9

Bot releases are visible (Hide)

timesnap - core-v0.3.3 Latest Release

Published by tungs over 2 years ago

timesnap - v0.3.3

Published by tungs over 2 years ago

TBD

timesnap - v0.3.2

Published by tungs almost 3 years ago

v0.3.2 of timesnap reflects changes in v0.2.1 of timeweb (which had some bug fixes for undocumented features and preliminary support for web workers), but shouldn't affect the behavior of timesnap.

Full Changelog: https://github.com/tungs/timesnap/compare/v0.3.1...v0.3.2

timesnap - core-v0.3.2

Published by tungs almost 3 years ago

timesnap - core-v0.3.1

Published by tungs almost 3 years ago

timesnap - v0.3.1

Published by tungs almost 3 years ago

v0.3.1 introduces compatibility with playwright, though WebKit and Firefox browsers seem to run into issues.

v0.3.1 also uses the updated API for timeweb v0.2.0, which introduced breaking changes by removing global functions.

Full Changelog: https://github.com/tungs/timesnap/compare/v0.3.0...v0.3.1

timesnap - v0.3.0

Published by tungs over 3 years ago

Version 0.3.0 marks a migration to using ES2017 features async/await and arrow functions. They were previously avoided to maximize compatibility with earlier versions of puppeteer.

It should be functionally equivalent to v0.2.1, though there may be some unintentional bugs or side effects. Please file an issue if there is inconsistent behavior.

timesnap - core-v0.3.0

Published by tungs over 3 years ago

TBD

timesnap - v0.2.1

Published by tungs over 3 years ago

  • Adds config.stopFunctionName and --stop-function-name is the name of a function created inside the client page to manually stop capturing.
  • Updates dependencies to address security vulnerabilities
  • Last version before adopting ES2017 features
timesnap - core-v0.2.1

Published by tungs over 3 years ago

TBD

timesnap - v0.2.0

Published by tungs over 3 years ago

Version 0.2.0 removes the time handling code from timesnap and puts it into a separate package timeweb.

It also adds issue and pull request templates.

Command Line

  • Additional viewport options using the format optionKey=value, for instance --viewport="800,600,deviceScaleRatio=2"
  • Using launch arguments --force-device-scale-ratio and --device-scale-ratio (e.g. --launch-arguments="--force-device-scale-ratio=2") should now work, though it's advisable to just use deviceScaleRatio with the viewport above (see #40).

Node.js

  • Adds config.navigatePageToURL to allow for custom navigation
timesnap - core-v0.2.0

Published by tungs over 3 years ago

timesnap-core is a version of a timesnap that doesn't automatically bundle puppeteer as a dependency.

TBD

timesnap - core-v0.1.4

Published by tungs over 3 years ago

timesnap-core is a version of a timesnap that doesn't automatically bundle puppeteer as a dependency. Instead it relies on the user to supply a config.launcher function or a config.browser object that returns or is a puppeteer/puppeteer like browser object.

timesnap - v0.1.4

Published by tungs almost 4 years ago

timesnap now throws an error if it caught an error. Last updated before a major update in v0.2.0.

timesnap - v0.1.3

Published by tungs about 4 years ago

Updates ESLint to version 6, and adds more configuration options for node.js:

node.js:

  • config.logger
    • Allows for a custom logging function. The supplied function should be able to take the same arguments as console.log, though currently, it is only called with a single string argument.
  • config.shouldSkipFrame
    • A function that returns true if the current frame should be skipped. Useful for multiple instanced processing.
timesnap - v0.1.2

Published by tungs over 4 years ago

timesnap now requires Node version 8.9.0 or higher (up from version 6.4.0 or higher).

Adds more configuration options:

Command Line

  • --remote-url path
    • URL of remote Chromium/Chrome instance to connect using puppeteer.connect().
  • --screenshot-type type
    • Output image format for the screenshots. By default, the file extension is used to infer type, and failing that, png is used. jpeg is also available.
  • --screenshot-quality quality
    • Not applicable to pngs. Quality level between 0 to 1 for lossy screenshots. Defaults to 0.92 when in canvas capture mode and 0.8 otherwise.

node.js:

  • config.remoteUrl
    • URL of remote Chromium/Chrome instance to connect using puppeteer.connect().
  • config.screenshotType
    • Output image format for the screenshots. By default, the file extension is used to infer type, and failing that, png is used. jpeg is also available.
  • config.screenshotQuality
    • Not applicable to pngs. Quality level between 0 to 1 for lossy screenshots. Defaults to 0.92 when in canvas capture mode and 0.8 otherwise.
timesnap - v0.1.1

Published by tungs about 5 years ago

This version adds preliminary support for video playback as either elements in the webpage or as images drawn to canvases.

Note that the default version of timesnap and puppeteer installs Chromium, which does not have proprietary video formats included (e.g. .mp4 with h.264 encoding). You can use Chrome which can play those formats in timesnap by using the --executable-path or config.executablePath option to specify the path to an installed version of Chrome.

timesnap - v0.1.0

Published by tungs over 5 years ago

This version changes the way that requestAnimationFrame operates, running its callbacks in relation to capturing images instead of running them at a fixed rate. See #10 and #17 for more information.

The algorithm to iterating through time has been rewritten to accommodate future features.

timesnap - v0.0.6

Published by tungs over 5 years ago

Code is now split into separate files, instead of all being in index.js

  • Adds canvas capture mode, an experimental mode for transferring data directly from the canvas element, via the --canvas-mode command line option, or via config.canvasMode for Node.js
  • Outputs the elapsed capture time, calculated from just before capturing frames begins to after it ends
  • Removed the minimum 60fps call rate for requestAnimationFrame calls
timesnap - v0.0.5

Published by tungs over 5 years ago

Adds a package-lock.json file. Also adds more configuration options

Command Line

  • --executable-path path specifies which Chromium/Chrome executable to use
  • --no-headless runs Chromium/Chrome with a display (not headless)

node.js:

  • config.executablePath specifies which Chromium/Chrome executable to use
  • config.headless runs Chromium/Chrome in headless mode (default: true)
  • config.preparePage a function to run after a page is loaded, but before screenshots begin
  • config.preparePageForScreenshot a function to run before each screenshot