jellydn/twt-dl-cli
jellydn/twt-dl-cli has 52 GitHub stars and 10 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-15 08:38 UTC. Last push 2026-11-06.
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
The easiest way to download any Twitter video from CLI
Developer ToolsREADME.md
OriginalWelcome to twt-dl-cli 👋
Download videos and photos from Twitter/X tweet URLs with the CLI.
Inspired by egoist/download-twitter-video: The easiest way to download any Twitter video.
Install
npm install -g twt-dl-cli@latest
Built with
- jellydn/typescript-starter: Typescript starter project
- privatenumber/cleye: 👁🗨 cleye — The intuitive & typed CLI development tool for Node.js
- kevva/download: Download and extract files
- sindresorhus/ora: Elegant terminal spinner
- And ChatGPT :)

Usage
npx twt-dl-cli@latest --help
Example:
npx twt-dl-cli@latest https://twitter.com/mattpocockuk/status/1592130978234900484
Download a Thread (Multiple URLs):
Pass multiple URLs to download videos/photos from several tweets. For a thread, supply each tweet URL; the CLI does not discover thread replies automatically.
npx twt-dl-cli@latest https://twitter.com/user/status/123 https://twitter.com/user/status/456

If a URL fails, the CLI reports it and continues with later URLs. The final exit code is 1 if any URL fails, or 0 if all URLs succeed. A tweet with no media is not a failure.
Library API
downloadVideo(url) now returns Promise<string[]>, not a single URL or undefined. It returns all media URLs for one tweet, or an empty array when the tweet has no media.
downloadFile(mediaUrl, outputFile?) returns Promise<WriteStream> only after the file finishes writing. It rejects on download or write errors. Without outputFile, it uses a unique filename in the current directory. An explicit output path is preserved and overwrites an existing file.
Author
👤 Huynh Duc Dung
- Website: https://productsway.com/
- Twitter: @jellydn
- Github: @jellydn
Show your support
Give a ⭐️ if this project helped you!
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Dung Duc Huynh (Kaka) 💻 📖 |
yetone 💻 |
Andrés Ujpán 💻 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Contributor records are stored in .all-contributorsrc; the badge and table above are generated from those records. Keep the existing records when updating the table.
To recognize a confirmed contribution, comment on an issue or pull request with @all-contributors please add @USERNAME for CONTRIBUTION_TYPE. Replace the placeholders with the contributor's GitHub login and the types from the emoji key. Do not add unverified contributions.
A repository owner must install the All Contributors GitHub App for this repository if the bot does not respond. As a local alternative, run pnpm dlx all-contributors-cli generate to regenerate the README from the existing configuration, then review the diff before committing.
![IT Man - Tip #29 - How I create download Twitter URL with ChatGPT [Vietnamese]](https://i.ytimg.com/vi/jiC7EmKT64U/hqdefault.jpg)