x-tweet-fetcher

TotalClaw 作者 totalclaw

无需登录或 API 密钥即可从 X/Twitter 获取推文。 支持常规推文、长推文、引用推文和完整 X 文章。 零依赖,零配置。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~hjw21century-x-tweet-fetcher
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~hjw21century-x-tweet-fetcher/file -o hjw21century-x-tweet-fetcher.md
## 概述(中文)

无需登录或 API 密钥即可从 X/Twitter 获取推文。
支持常规推文、长推文、引用推文和完整 X 文章。
零依赖,零配置。

## 原文

# X Tweet Fetcher

Fetch tweets from X/Twitter without authentication. Uses FxTwitter API.

## What It Can Fetch

| Content Type | Support |
|-------------|---------|
| Regular tweets | ✅ Full text + stats |
| Long tweets (Twitter Blue) | ✅ Full text |
| X Articles (long-form) | ✅ Complete article text |
| Quoted tweets | ✅ Included |
| Stats (likes/RT/views) | ✅ Included |

## Usage

### CLI

```bash
# JSON output
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456"

# Pretty JSON
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --pretty

# Text only (human readable)
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --text-only
```

### From Agent Code

```python
from scripts.fetch_tweet import fetch_tweet

result = fetch_tweet("https://x.com/user/status/123456")
tweet = result["tweet"]

# Regular tweet
print(tweet["text"])

# X Article (long-form)
if tweet["is_article"]:
    print(tweet["article"]["title"])
    print(tweet["article"]["full_text"])  # Complete article
    print(tweet["article"]["word_count"])
```

## Output Format

```json
{
  "url": "https://x.com/user/status/123",
  "username": "user",
  "tweet_id": "123",
  "tweet": {
    "text": "Tweet content...",
    "author": "Display Name",
    "screen_name": "username",
    "likes": 100,
    "retweets": 50,
    "bookmarks": 25,
    "views": 10000,
    "replies_count": 30,
    "created_at": "Mon Jan 01 12:00:00 +0000 2026",
    "is_note_tweet": false,
    "is_article": true,
    "article": {
      "title": "Article Title",
      "full_text": "Complete article content...",
      "word_count": 4847,
      "char_count": 27705
    }
  }
}
```

## Requirements

- Python 3.7+
- No external packages (stdlib only)
- No API keys
- No login required

## How It Works

Uses [FxTwitter](https://github.com/FxEmbed/FxEmbed) public API (`api.fxtwitter.com`) which proxies X/Twitter content. Articles are returned as structured blocks and reassembled into full text.

## Limitations

- Cannot fetch reply threads (only reply counts available via `replies_count` field)
  - Reply content would require browser automation dependencies (Camofox/Nitter)
  - These were removed to maintain zero-dependency architecture
  - `--replies` flag exists but returns an explanatory error message
- Cannot fetch deleted or private tweets
- Rate limits depend on FxTwitter service availability
- If FxTwitter goes down, the skill won't work (no fallback)

## File Structure

```
skills/x-tweet-fetcher/
├── SKILL.md              (this file)
└── scripts/
    └── fetch_tweet.py    (single file, zero deps)
```