Skip to content

Snap a screenshot of a tweet πŸ“Έ

License

Notifications You must be signed in to change notification settings

buggsi/snap-tweet

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Έ snap-tweet

Command-line tool to capture clean and simple tweet snapshots.


Light mode


Dark mode

Features

  • πŸŽ› Adjustable width
  • πŸ’… Rounded corners & transparent background
  • 🌚 Dark mode
  • 🌐 Customizable locale
  • πŸ™…β€β™€οΈ No "Share" & "Info" buttons
  • πŸ’– No watermark
  • πŸ”₯ Snap multiple tweets at once

Support this project by ⭐️ starring and sharing it. Follow me to see what other cool projects I'm working on! ❀️

πŸš€ Install

The only requirement is to have Google Chrome Browser.

npm i -g snap-tweet

npx

Use npx to run without installation.

Must be built first: npm run build

npx snap-tweet

🚦 Quick usage

Basic usage

By default, the tweet snap is opened in your default image viewer so you can decide whether to save or not.

snap-tweet https://twitter.com/jack/status/20

Save to directory

Save the tweet snap to a specified directory using the --output-dir flag.

snap-tweet https://twitter.com/jack/status/20 --output-dir ~/Desktop

Dark mode

Snap a tweet in dark mode using the --dark-mode flag.

snap-tweet https://twitter.com/jack/status/20 --dark-mode

Custom width

Pass in a custom width for the tweet using the --width flag.

snap-tweet https://twitter.com/github/status/1390807474748416006 --width 900


Tweet with a 900px width

Localization

Pass in a different locale using the --locale flag.

snap-tweet https://twitter.com/TwitterJP/status/578707432 --locale ja


Using the Japanese locale (ja)

Show Thread

Use the --show-thread flag to include the parent tweet in the screenshot.

snap-tweet https://twitter.com/jack/status/1108487919969275904 --show-thread


Parent tweet inlcuded in the screenshot

Multiple tweets

Snap multiple tweets at once by passing in multiple tweet URLs.

snap-tweet https://twitter.com/naval/status/1002103497725173760 https://twitter.com/naval/status/1002103559276478464 https://twitter.com/naval/status/1002103627387813888

Manual

snap-tweet

Usage:
  $ snap-tweet <...tweet urls>

Options:
  -d, --dark-mode                       Show tweet in dark mode
  -c, --fill-comment-button             Fill the comment button
  -l, --fill-like-button                Fill the like button
  -h, --help                            Show help
  -b, --hide-follow-button              Hide the follow button
      --locale <locale>                 Locale (default: "en")
  -o, --output-dir <path>               Tweet screenshot output directory
  -f, --output-filename <string>        Tweet screenshot output filename
  -x, --scale <number>                  Scale of tweet (multiplier to increase the resolution)     
                                        (default: 1)
  -s, --show-comments                   Show comments
  -t, --show-thread                     Show tweet thread
      --version                         Show version
  -w, --width <width>                   Width of tweet (default: 550)

πŸ‹οΈβ€β™€οΈ Motivation

It all started when I simply wanted to embed a couple tweets into a Google Doc...

Quick googling showed that there's no way to embed an actual tweet because Google Docs doesn't support HTML iframes or JavaScript. And I wasn't going to install a plugin just for some tweets.

I figured I could just take a screenshot of the tweet. But only to realize I would be spending way too much time cropping each tweet, and they still wouldn't be perfect because of the lack of transparency behind the rounded corners. And not to mention, the static screenshot would include buttons like "Copy link to Tweet" that looked actionable but actually weren't.

I found services like Screenshot Guru (and their Twitter Screenshots Chrome extension), Pikaso, etc. but none of them met my needs (low quality images, actionable buttons present, watermarks, etc.).

All I wanted to do was to embed the tweet like how it looks in the official embedder into a static environment. No sign up, no watermark, no BS... It shouldn't be this hard! 🀯

So of course, I spent a few hours developing a tool to save us all the headache πŸ˜‡

(I know, this is some pretty crazy yak shaving. Checkout my other projects to see how deep I've gone.)

πŸ™‹β€β™€οΈ Need help?

If you have a question about usage, ask on Discussions.

If you'd like to make a feature request or file a bug report, open an Issue.

Note about this fork

These are modifications originally done by @FelixDubois (privatenumber#38). Unfortunately, he deleted his fork, so this is a new fork with his work.

Added features:

  • Can specify the output filename
  • Scaling parameter to increase resolution
  • Fill the comment and/or like buttons
  • Show or hide the amount of comments

About

Snap a screenshot of a tweet πŸ“Έ

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.7%
  • JavaScript 0.3%