Twt Dl Cli
The easiest way to download any Twitter video from CLI
#Welcome 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):
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)