/hotshot

Takes screenshots of DOM elements

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Hotshot

Takes screenshots of DOM elements, like Jake Gyllenhaal 📸

Check out the blog post.

Start (without Docker)

Make sure you've got a current node and yarn installed. Then:

$ yarn install
$ TARGET_HOST="https://www.innoq.com" yarn start

Start (with Docker)

Build image:

$ docker build -t innoq/hotshot .

Start server:

$ docker run --init -p 5000:5000 -e PORT=5000 -e TARGET_HOST='https://www.innoq.com' innoq/hotshot

Request a screenshot

$ curl -G "http://localhost:5000/shoot?path=/relative/path&selector=.my-css-class" > screenshot.jpeg

Content negotiation

Hotshot can serve webp images if requested in the Accept header. Example:

$ curl -G -H "accept: image/webp" "http://localhost:5000/shoot?path=/relative/path&selector=.my-css-class" > screenshot.webp

Please note: any Accept header values not directly specifying webp support (e. g. */*) automatically get served jpeg.