| --- |
| title: X Video Downloader |
| colorFrom: blue |
| colorTo: indigo |
| sdk: docker |
| pinned: false |
| --- |
| |
| # X.com Video Downloader |
|
|
|  |
|  |
|  |
|
|
| A robust, fast-processing Python tool to download high-quality video content from X.com (Twitter) links. |
|
|
| **Author:** algorembrant |
|
|
| ## Architecture and Flow |
|
|
| ```mermaid |
| sequenceDiagram |
| participant User |
| participant CLI as x_downloader.py |
| participant YTDLP as yt-dlp Core |
| participant X as X.com Servers |
| participant Local as Local Storage |
| |
| User->>CLI: python x_downloader.py "url" |
| CLI->>YTDLP: Pass URL and Configuration |
| YTDLP->>X: Request Metadata & Media Streams |
| X-->>YTDLP: Return Video Stream & Audio Stream |
| YTDLP->>Local: Download Streams |
| YTDLP->>Local: Merge via FFmpeg (mp4) |
| Local-->>CLI: Success Status |
| CLI-->>User: "Download completed successfully." |
| |
| ``` |
| . |
| ## File Structure |
| ``` |
| ├── .gitattributes |
| ├── .gitignore |
| ├── README.md |
| ├── requirements.txt |
| └── x_downloader.py |
| ``` |
|
|
|
|
| - 1 Install Python Ensure Python 3.8+ is installed on your system. |
| - 2 Install FFmpeg |
| - Windows: Download from gyan.dev, extract, and add the bin folder to your System PATH. |
| - macOS: brew install ffmpeg |
| - Linux (Debian/Ubuntu): sudo apt update && sudo apt install ffmpeg |
| - 3 Create Directory Create a folder for your project and navigate into it. |
| - 4 Set up Virtual Env python -m venv venv (then activate it: venv\Scripts\activate on Windows or source venv/bin/activate on Mac/Linux). |
| - 5 Save Files Save the provided .py, requirements.txt, .gitignore, .gitattributes, and README.md files in your directory. |
| - 6 Install Libraries pip install -r requirements.txt |
| - 7 Run the Script Execute the script using the commands listed at the top of the Python file. |
|
|
| **Note**: FFmpeg is strictly required. X.com often serves video and audio as separate streams to optimize bandwidth; FFmpeg allows the script to rapidly merge them back into a single MP4 file without quality loss. |
|
|
| ## Example process (input to output) |
|
|
| ``` |
| usage: x_downloader.py [-h] [-o OUTPUT_DIR] [-f FILENAME] url |
| |
| (.venv) PS C:\Users\User\Desktop\debugrem\x.com_link-to-vid> python x_downloader.py https://x.com/ai_hakase_/status/2034540882754408490 |
| Initializing download for: https://x.com/ai_hakase_/status/2034540882754408490 |
| Extracting video metadata and downloading... |
| [twitter] Extracting URL: https://x.com/ai_hakase_/status/2034540882754408490 |
| [twitter] 2034540882754408490: Downloading guest token |
| [twitter] 2034540882754408490: Downloading GraphQL JSON |
| [twitter] 2034540882754408490: Downloading m3u8 information |
| [info] 2033693638224711680: Downloading 1 format(s): http-832 |
| [download] Destination: ハカセ アイ(Ai-Hakase)🐾最新トレンドAIのためのX 🐾 - 【GPUの限界突破】超高速K-means「Flash-KMeans」が登 |
| 場! 👉 機械学習の定番、K-means法が驚異的な進化を遂げまし..._2033693638224711680.mp4 |
| [download] 100% of 702.58KiB in 00:00:00 at 1.06MiB/s |
| Download completed successfully. |
| |
| ``` |