Matin-B/TwiGram

GitHub: Matin-B/TwiGram

一个零认证的轻量级 Python 库,通过 Twitter Syndication API 提取和下载 Twitter/X 推文的文本与多媒体内容。

Stars: 2 | Forks: 0

# TwiGram ![PyPI - Version](https://img.shields.io/pypi/v/TwiGram) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/TwiGram) ![License](https://img.shields.io/github/license/matin-b/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, 媒体下载, 数据提取, 爬虫工具, 逆向工具