webgif - Easily generate animated GIFs from websites
- Easy :point_right: Just point it to a URL and get an animated GIF!
- Cross-platform :point_right: Works on Windows, Mac, Linux, without Docker!
- Headless :point_right: Uses GoogleChrome/puppeteer
- Inspired :point_right: By asciicast2gif and wanting to make it easier to use
Installation
yarn global add webgif || npm i -g webgif
Usage
To navigate to https://giphy.com/search/lol
and make an animated GIF of duration 10
seconds, execute:
webgif -u https://giphy.com/search/lol -d 10
Navigating to URL: https://giphy.com/search/lol
Taking screenshots: .............
Encoding GIF: /home/user/web.gif
Options
webgif -u URL -d DURATION [-o OUTFILE]
Options:
--url, -u URL to generate GIF from
[default: "https://giphy.com/search/lol"]
--duration, -d GIF duration in seconds [default: 10]
--output, -o Output file name
[default: "web.gif"]
-h, --help Show help [boolean]
-V, --version Show version number [boolean]
Sample GIF
How it works
- Use Puppeteer to launch a headless Chrome window
- Use
setInterval
to take screenshots and save them to disk - Navigate to target URL and wait for specified duration
- Use gifencoder and png-file-stream to create animated GIF out of saved screenshots
See code: index.js