Matin-B/TwiGram
GitHub: Matin-B/TwiGram
一个零认证的轻量级 Python 库,通过 Twitter Syndication API 提取和下载 Twitter/X 推文的文本与多媒体内容。
Stars: 2 | Forks: 0
# TwiGram



TwiGram 是一个轻量级、零认证的 Python 库,用于提取和下载 Twitter/X 内容。它利用 Twitter Syndication API 绕过对官方 API 密钥的需求,从而获取高质量的媒体链接、纯文本和元数据。
## 功能
* **多格式提取:** 原生解析标准文本、单张图片、多图相册、GIF 以及 HLS/mp4 视频。
* **URL 解析:** 自动解析 `t.co` 短链接,并将 `twitter.com` URL 标准化为 `x.com` 格式。
* **媒体排序:** 解析 `.mp4` 变体,并自动按最高分辨率对视频输出数组进行排序。
* **网络优化大小计算:** 在启动完整 payload 下载之前,通过 HTTP `HEAD` 请求计算出易于阅读的文件大小。
## 环境要求
* Python 3.6+
* [requests](https://requests.readthedocs.io/en/latest/)
## 安装说明
```
pip install TwiGram
```
## 使用说明
该库公开了一个主要函数:`download()`。
### 基础提取
传入一个有效的 X (Twitter) 状态 URL 以获取 payload。
```
from twigram import download
tweet_data = download("https://x.com/i/status/1481722124855169028")
print(tweet_data)
```
### 媒体大小计算
对于需要提前分配存储空间或进行用户提示的应用程序,请设置 `show_size=True` 以执行网络层面的尺寸计算。
```
from twigram import download
tweet_data = download("https://x.com/i/status/1481722124855169028", show_size=True)
if tweet_data.get("status") and tweet_data.get("type_name") == "video":
highest_quality = tweet_data["data"]["video_urls"][0]
print(f"URL: {highest_quality['url']}")
print(f"Resolution: {highest_quality['resolution']}")
print(f"Size: {highest_quality['human_size']}")
```
#### 错误处理
失败情况(例如:推文已删除、私密账户、无效 URL)将返回统一的错误字典:
```
{
"status": False,
"status_code": 404,
"message": "Tweet is not found. It may have been deleted or made private."
}
```
## 许可证
本项目基于 **GNU General Public License v3.0 (GPL-3.0)** 授权 - 有关详情,请参阅 `LICENSE` 文件。
标签:API, Twitter, 媒体下载, 数据提取, 爬虫工具, 逆向工具