Giter VIP home page Giter VIP logo

tweet-to-markdown's Introduction

Stargazers Issues MIT License


Logo

Tweet to Markdown

A command line tool to quickly save tweets as Markdown.

Report a Bug · Request a Feature

About The Project

This command line tool allows you to quickly save a tweet in Markdown format. This is great for Zettelkasten note-taking or any other commonplace notebook, vade mecum, Obsidian, Roam, Foam, &c. It is built on the new Twitter v2 API.

Demo of ttm in the command line

Installing

You'll need to have Node.js of at least v10.x to use this tool.

You can install this CLI tool easily by running

yarn global add tweet-to-markdown

or

npm install --global tweet-to-markdown

You can also run it without installing:

npx tweet-to-markdown

Usage

To use this tool, you'll need to set up an application and get a bearer token on the Twitter developer dashboard. Once you have the bearer token, either store it in the environment variable TWITTER_BEARER_TOKEN or pass it to the command line tool with the -b (--bearer) flag with each call.

Grabbing a tweet is as easy as calling the ttm command and passing in the tweet URL.

ttm -b <bearer token> https://twitter.com/JoshWComeau/status/1213870628895428611
# Tweet saved as JoshWComeau - 1213870628895428611.md

The tweet will be saved to a Markdown file in the current directory. Here's how the tweet will look:

Screenshot of the rendered Markdown file

Any attached images, polls, and links will also be linked and displayed in the file.

Options

There are many options to customize how this tool works. It is highly recommended to find the options you need and set up an alias in your terminal.

For example on Mac or Linux, you can define an alias with your options like so:

alias ttm="ttm -p $HOME/notes --assets --quoted"

For Windows, have a look at DOSKEY.

Copy to Clipboard

What if you want to just copy the Markdown to the clipboard instead of saving to a file? Why, it's as simple as just passing the -c (--clipboard) flag.

ttm -c https://twitter.com/JoshWComeau/status/1213870628895428611
#Tweet copied to the clipboard.

Quoted tweets

If you would like to include quoted tweets, pass the -q (--quoted) flag. This is disabled by default because a separate request has to be made to fetch the quoted tweet.

ttm <tweet url> -q

Tweet threads

To capture an entire tweet thread, use the -t (--thread) flag and pass the URL of the last tweet in the thread.

Nota bene: this will make a separate network request for each tweet.

ttm <last tweet url> -t

Custom File Name

In order to save the tweet with a custom filename, pass the desired name to the --filename flag. You can use the variables [[name]], [[handle]], [[text]], and [[id]] in your filename, which will be replaced according to the following chart. The file extension .md will also be added automatically.

Variable Replacement
[[handle]] The user's handle (the part that follows the @ symbol)
[[name]] The user's name
[[id]] The unique ID assigned to the tweet
[[text]] The entire text of the tweet (truncated to fit OS filename length restrictions)
ttm <tweet url> --filename "[[handle]] - Favicon versioning".
# Tweet saved to JoshWComeau - Favicon versioning.md

If the file already exists, an error will be thrown unless you pass the -f (--force) flag to overwrite the file.

Custom File Path

To save the tweet to a place other than the current directory, pass the location to the -p (--path) flag. If this path doesn't exist, it will be recursively created.

ttm <tweet url> -p "./tweets/"
# Tweet saved to ./tweets/JoshWComeau - 1213870628895428611.md

Tweet Metrics

If you'd also like to record the number of likes, retweets, and replies the tweet has, pass the -m (--metrics) flag. This will save those numbers in the frontmatter of the file.

ttm <tweet url> -m
---
author: Josh ✨
handle: @JoshWComeau
likes: 993
retweets: 163
replies: 24
---

Save Images Locally

Want to really capture the entire tweet locally? You can pass the -a (--assets) flag to download all the tweet images as well, instead of just linking to the images on the web. If the tweet is ever deleted or Twitter is unavailable, you'll still have your note.

ttm <tweet url> -a

Tweet images will be automatically saved to ./tweet-assets. If you'd like to save the assets to a custom directory, use the --assets-path flag and pass in the directory.

ttm <tweet url> -a --assets-path "./images"

Nota bene: Unfortunately, there is currently not a way to save gifs or videos from tweets using the v2 API.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch ( git checkout -b feature )
  3. Commit your Changes ( git commit -m "Add a cool feature" )
  4. Push to the Branch ( git push origin feature )
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details

Contact

Karey Higuera - @kbravh - [email protected]

Project Link: https://github.com/kbravh/tweet-to-markdown

tweet-to-markdown's People

Contributors

kbravh avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.