{"id":13469628,"url":"https://github.com/privatenumber/snap-tweet","last_synced_at":"2025-04-05T11:08:38.425Z","repository":{"id":37697626,"uuid":"364167650","full_name":"privatenumber/snap-tweet","owner":"privatenumber","description":"Snap a screenshot of a tweet 📸","archived":false,"fork":false,"pushed_at":"2022-12-16T08:12:42.000Z","size":1961,"stargazers_count":327,"open_issues_count":6,"forks_count":18,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2024-05-04T00:17:53.762Z","etag":null,"topics":["capture","screenshot","snap","snapshot","tweet","twitter"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/privatenumber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-04T06:59:06.000Z","updated_at":"2024-04-30T16:11:07.000Z","dependencies_parsed_at":"2023-01-29T11:32:44.735Z","dependency_job_id":null,"html_url":"https://github.com/privatenumber/snap-tweet","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/privatenumber%2Fsnap-tweet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/privatenumber%2Fsnap-tweet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/privatenumber%2Fsnap-tweet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/privatenumber%2Fsnap-tweet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/privatenumber","download_url":"https://codeload.github.com/privatenumber/snap-tweet/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325693,"owners_count":20920714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capture","screenshot","snap","snapshot","tweet","twitter"],"created_at":"2024-07-31T15:01:47.626Z","updated_at":"2025-04-05T11:08:38.378Z","avatar_url":"https://github.com/privatenumber.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","twitter"],"sub_categories":[],"readme":"# 📸 snap-tweet \u003ca href=\"https://npm.im/snap-tweet\"\u003e\u003cimg src=\"https://badgen.net/npm/v/snap-tweet\"\u003e\u003c/a\u003e \u003ca href=\"https://packagephobia.now.sh/result?p=snap-tweet\"\u003e\u003cimg src=\"https://packagephobia.now.sh/badge?p=snap-tweet\"\u003e\u003c/a\u003e\n\nCommand-line tool to capture clean and simple tweet snapshots.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/jack/status/20\"\u003e\n    \u003cimg src=\".github/example.png\" width=\"60%\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eLight mode\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/jack/status/20\"\u003e\n    \u003cimg src=\".github/example-dark.png\" width=\"60%\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eDark mode\u003c/em\u003e\n\u003c/p\u003e\n\n### Features\n- 🎛 Adjustable width\n- 💅 Rounded corners \u0026 transparent background\n- 🌚 Dark mode\n- 🌐 Customizable locale\n- 🙅‍♀️ No \"Share\" \u0026 \"Info\" buttons\n- 💖 No watermark\n- 🔥 Snap multiple tweets at once\n\n\u003csub\u003eSupport this project by ⭐️ starring and sharing it. [Follow me](https://github.com/privatenumber) to see what other cool projects I'm working on! ❤️\u003c/sub\u003e\n\n## 🚀 Install\nThe only requirement is to have [Google Chrome Browser](https://www.google.com/chrome/).\n\n\n```sh\nnpm i -g snap-tweet\n```\n\n### npx\nUse [npx](https://nodejs.dev/learn/the-npx-nodejs-package-runner) to run without installation.\n```sh\nnpx snap-tweet\n```\n\n## 🚦 Quick usage\n### Basic usage\nBy default, the tweet snap is opened in your default image viewer so you can decide whether to save or not.\n```sh\nsnap-tweet https://twitter.com/jack/status/20\n```\n\n### Save to directory\nSave the tweet snap to a specified directory using the `--output-dir` flag.\n```sh\nsnap-tweet https://twitter.com/jack/status/20 --output-dir ~/Desktop\n```\n\n### Dark mode\nSnap a tweet in dark mode using the `--dark-mode` flag.\n```sh\nsnap-tweet https://twitter.com/jack/status/20 --dark-mode\n```\n\n### Custom width\nPass in a custom width for the tweet using the `--width` flag.\n```sh\nsnap-tweet https://twitter.com/github/status/1390807474748416006 --width 900\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/github/status/1390807474748416006\"\u003e\n    \u003cimg src=\".github/example-width-900.png\" width=\"50%\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eTweet with a 900px width\u003c/em\u003e\n\u003c/p\u003e\n\n### Localization\nPass in a [different locale](https://developer.twitter.com/en/docs/twitter-for-websites/supported-languages) using the `--locale` flag.\n```sh\nsnap-tweet https://twitter.com/TwitterJP/status/578707432 --locale ja\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/TwitterJP/status/578707432\"\u003e\n    \u003cimg src=\".github/example-locale-ja.png\" width=\"50%\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eUsing the Japanese locale (ja)\u003c/em\u003e\n\u003c/p\u003e\n\n### Show Thread\nUse the `--show-thread` flag to include the parent tweet in the screenshot.\n\n```sh\nsnap-tweet https://twitter.com/jack/status/1108487919969275904 --show-thread\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/jack/status/1108487919969275904\"\u003e\n    \u003cimg src=\".github/example-thread.png\" width=\"50%\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eParent tweet inlcuded in the screenshot\u003c/em\u003e\n\u003c/p\u003e\n\n### Multiple tweets\nSnap multiple tweets at once by passing in multiple tweet URLs.\n```sh\nsnap-tweet https://twitter.com/naval/status/1002103497725173760 https://twitter.com/naval/status/1002103559276478464 https://twitter.com/naval/status/1002103627387813888\n```\n\n### Manual\n```\nsnap-tweet\n\nUsage:\n  $ snap-tweet \u003c...tweet urls\u003e\n\nOptions:\n  -o, --output-dir \u003cpath\u003e  Tweet screenshot output directory\n  -w, --width \u003cwidth\u003e      Width of tweet (default: 550)\n  -t, --show-thread        Show tweet thread\n  -d, --dark-mode          Show tweet in dark mode\n  -l, --locale \u003clocale\u003e    Locale (default: en)\n  -h, --help               Display this message\n  -v, --version            Display version number\n```\n\n## 🏋️‍♀️ Motivation\nIt all started when I simply wanted to embed a couple tweets into a Google Doc...\n\nQuick 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.\n\n\nI 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.\n\nI found services like [Screenshot Guru](https://screenshot.guru) (and their [Twitter Screenshots](https://chrome.google.com/webstore/detail/twitter-screenshots/imfhndkgmnbnogfjcecdpopaooachgco) Chrome extension), [Pikaso](https://pikaso.me/), etc. but none of them met my needs (low quality images, actionable buttons present, watermarks, etc.).\n\nAll I wanted to do was to embed the tweet like how it looks in the [official embedder](https://publish.twitter.com/#) into a static environment. No sign up, no watermark, no BS... It shouldn't be this hard! 🤯\n\nSo of course, I spent a few hours developing a tool to save us all the headache 😇\n\n_(I know, this is some pretty crazy [yak shaving](https://en.wiktionary.org/wiki/yak_shaving). Checkout [my other projects](https://github.com/privatenumber) to see how deep I've gone.)_\n\n## 🙋‍♀️ Need help?\nIf you have a question about usage, [ask on Discussions](https://github.com/privatenumber/snap-tweet/discussions).\n\nIf you'd like to make a feature request or file a bug report, [open an Issue](https://github.com/privatenumber/snap-tweet/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprivatenumber%2Fsnap-tweet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprivatenumber%2Fsnap-tweet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprivatenumber%2Fsnap-tweet/lists"}