x-tweet-fetcher
88
总安装量
88
周安装量
#4795
全站排名
安装命令
npx skills add https://github.com/ythx-101/x-tweet-fetcher --skill x-tweet-fetcher
Agent 安装分布
opencode
75
codex
73
gemini-cli
71
openclaw
71
github-copilot
65
cursor
64
Skill 文档
X Tweet Fetcher
Fetch tweets from X/Twitter without authentication. Supports tweet content, reply threads, user timelines, and Chinese platforms.
Feature Overview
| Feature | Command | Dependencies |
|---|---|---|
| Single tweet | --url <tweet_url> |
None (zero deps) |
| Reply threads | --url <tweet_url> --replies |
Camofox |
| User timeline | --user <username> --limit 300 |
Camofox |
| Chinese platforms | fetch_china.py --url <url> |
Camofox (except WeChat) |
| Google search | camofox_search("query") |
Camofox |
Basic Usage (Zero Dependencies)
Fetch a Single Tweet
# JSON output
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456"
# Text only (human readable)
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --text-only
# Pretty JSON
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --pretty
What It Fetches
| 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 |
| Media URLs | â Images + videos |
Advanced Features (Requires Camofox)
â ï¸ The following features require Camofox browser service running on
localhost:9377. See Camofox Setup below.
Fetch Reply Threads
# Fetch tweet + all replies (including nested replies)
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --replies
# Text-only mode with replies
python3 scripts/fetch_tweet.py --url "https://x.com/user/status/123456" --replies --text-only
Fetch User Timeline
# Fetch latest tweets from a user (supports pagination, MAX_PAGES=20)
python3 scripts/fetch_tweet.py --user <username> --limit 300
Fetch Chinese Platform Content
# Auto-detects platform from URL
python3 scripts/fetch_china.py --url "https://weibo.com/..." # Weibo
python3 scripts/fetch_china.py --url "https://bilibili.com/..." # Bilibili
python3 scripts/fetch_china.py --url "https://csdn.net/..." # CSDN
python3 scripts/fetch_china.py --url "https://mp.weixin.qq.com/..." # WeChat (no Camofox needed!)
| Platform | Status | Notes |
|---|---|---|
| WeChat Articles | â | Uses web_fetch directly, no Camofox |
| â | Camofox renders JS | |
| Bilibili | â | Video info + stats |
| CSDN | â | Articles + code blocks |
| Zhihu / Xiaohongshu | â ï¸ | Needs cookie import for login |
Google Search (Zero API Key)
# Python
from scripts.camofox_client import camofox_search
results = camofox_search("your search query")
# Returns: [{"title": "...", "url": "...", "snippet": "..."}, ...]
# CLI
python3 scripts/camofox_client.py "your search query"
Uses Camofox browser to search Google directly. No Brave API key needed, no cost.
Camofox Setup
What is Camofox?
Camofox is an anti-detection browser service based on Camoufox (a Firefox fork with C++ level fingerprint masking). It bypasses:
- Cloudflare bot detection
- Browser fingerprinting
- JavaScript challenges
Installation
Option 1: OpenClaw Plugin
openclaw plugins install @askjo/camofox-browser
Option 2: Manual Install
git clone https://github.com/jo-inc/camofox-browser
cd camofox-browser
npm install && npm start
Verify
curl http://localhost:9377/health
# Should return: {"status":"ok"}
REST API
# Create tab
POST http://localhost:9377/tabs
Body: {"userId":"test", "sessionKey":"test", "url":"https://example.com"}
# Get page snapshot
GET http://localhost:9377/tabs/<TAB_ID>/snapshot?userId=test
# Close tab
DELETE http://localhost:9377/tabs/<TAB_ID>?userId=test
From Agent Code
from scripts.fetch_tweet import fetch_tweet
result = fetch_tweet("https://x.com/user/status/123456")
tweet = result["tweet"]
# Regular tweet
print(tweet["text"])
print(f"Likes: {tweet['likes']}, Views: {tweet['views']}")
# X Article (long-form)
if tweet.get("is_article"):
print(tweet["article"]["title"])
print(tweet["article"]["full_text"])
# Links found in replies
for reply in result.get("replies", []):
for link in reply.get("links", []):
print(link)
Output Format
{
"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
}
},
"replies": [
{
"author": "@someone",
"text": "Reply text...",
"likes": 5,
"links": ["https://github.com/..."],
"thread_replies": [{"text": "Nested reply..."}]
}
]
}
File Structure
x-tweet-fetcher/
âââ SKILL.md # This file
âââ README.md # GitHub page with full docs
âââ scripts/
â âââ fetch_tweet.py # Main fetcher (tweet + replies + timeline)
â âââ fetch_china.py # Chinese platform fetcher
â âââ camofox_client.py # Camofox REST API client + camofox_search()
â âââ x-profile-analyzer.py # User profile analysis (AI-powered)
âââ CHANGELOG.md
Requirements
- Basic: Python 3.7+, no external packages, no API keys
- Advanced: Camofox running on localhost:9377
- Profile Analyzer: MiniMax M2.5 API key (for AI analysis)
How It Works
- Basic tweets: FxTwitter public API
- Replies/timelines: Camofox â Nitter (privacy-respecting X frontend)
- Chinese platforms: Camofox renders JS â extracts content
- Google search: Camofox opens Google â parses results