Node.js program that takes screenshots at smooth intervals of web pages with JavaScript animations
BSD-3-CLAUSE License
Bot releases are visible (Hide)
TBD
Full Changelog: https://github.com/tungs/timesnap/compare/core-v0.3.2...core-v0.3.3
Published by tungs over 2 years ago
TBD
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
Published by tungs almost 3 years ago
TBD
Full Changelog: https://github.com/tungs/timesnap/compare/core-v0.3.1...core-v0.3.2
Published by tungs almost 3 years ago
TBD
Full Changelog: https://github.com/tungs/timesnap/compare/core-v0.3.0...core-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
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.
Published by tungs over 3 years ago
TBD
Published by tungs over 3 years ago
config.stopFunctionName
and --stop-function-name
is the name of a function created inside the client page to manually stop capturing.Published by tungs over 3 years ago
TBD
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.
optionKey=value
, for instance --viewport="800,600,deviceScaleRatio=2"
--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).config.navigatePageToURL
to allow for custom navigationPublished by tungs over 3 years ago
timesnap-core is a version of a timesnap that doesn't automatically bundle puppeteer as a dependency.
TBD
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.
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.
Published by tungs about 4 years ago
Updates ESLint to version 6, and adds more configuration options for node.js:
config.logger
console.log
, though currently, it is only called with a single string argument.config.shouldSkipFrame
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:
--remote-url
path
puppeteer.connect()
.--screenshot-type
type
png
is used. jpeg
is also available.--screenshot-quality
quality
config.remoteUrl
puppeteer.connect()
.config.screenshotType
png
is used. jpeg
is also available.config.screenshotQuality
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.
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.
--canvas-mode
is renamed to --canvas-capture-mode
config.canvasMode
is renamed to config.canvasCaptureMode
.The algorithm to iterating through time has been rewritten to accommodate future features.
Published by tungs over 5 years ago
Code is now split into separate files, instead of all being in index.js
--canvas-mode
command line option, or via config.canvasMode
for Node.jsPublished by tungs over 5 years ago
Adds a package-lock.json
file. Also adds more configuration options
--executable-path
path specifies which Chromium/Chrome executable to use--no-headless
runs Chromium/Chrome with a display (not headless)config.executablePath
specifies which Chromium/Chrome executable to useconfig.headless
runs Chromium/Chrome in headless mode (default: true
)config.preparePage
a function to run after a page is loaded, but before screenshots beginconfig.preparePageForScreenshot
a function to run before each screenshot