{"skill":{"slug":"fxtwitter-extract","displayName":"Fxtwitter Extract","summary":"使用 FxTwitter API 提取 X (Twitter) 文章内容。支持提取推文、线程、用户资料，包括文本、图片、视频、投票等。无需 API Key。","description":"---\nname: fxtwitter-extract\ndescription: 使用 FxTwitter API 提取 X (Twitter) 文章内容。支持提取推文、线程、用户资料，包括文本、图片、视频、投票等。无需 API Key。\n---\n\n# FxTwitter Extract 技能\n\n使用 [FxTwitter API](https://api.fxtwitter.com) 提取 X (Twitter) 内容。\n\n## 特点\n\n- ✅ **无需 API Key** - FxTwitter 是免费的公共服务\n- ✅ **支持多种内容** - 文本、图片、视频、投票、引用\n- ✅ **支持线程提取** - 可提取整个推文线程\n- ✅ **支持用户资料** - 获取用户统计信息\n- ✅ **隐私友好** - FxTwitter 不记录日志\n\n## 使用方法\n\n### 基本用法\n\n```bash\n# 提取单个推文\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py status <推文 ID>\n\n# 提取推文（包含线程）\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py status <推文 ID> --thread\n\n# 提取用户资料\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py profile <用户名>\n\n# 从 URL 提取\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py url <X 文章 URL>\n\n# 输出原始 JSON\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py status <推文 ID> --json\n```\n\n### 示例\n\n```bash\n# 提取 Elon Musk 的推文\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py status 1234567890\n\n# 提取用户资料\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py profile elonmusk\n\n# 从 URL 提取（支持 x.com 和 twitter.com）\npython ~/.openclaw/workspace/skills/fxtwitter-extract/scripts/fxtwitter_extract.py url https://x.com/elonmusk/status/1234567890\n```\n\n## API 端点\n\nFxTwitter 提供以下 API 端点：\n\n| 端点 | 说明 | 示例 |\n|------|------|------|\n| `/2/status/:id` | 获取单个推文 | `/2/status/1234567890` |\n| `/2/thread/:id` | 获取推文线程 | `/2/thread/1234567890` |\n| `/2/profile/:handle` | 获取用户资料 | `/2/profile/elonmusk` |\n| `/2/owoembed` | oEmbed 格式 | `/2/owoembed?url=...` |\n\n**基础 URL:** `https://api.fxtwitter.com`\n\n**必需 Header:**\n- `User-Agent`: 必须标识你的应用（如 `MyBot/1.0`）\n\n## 返回格式\n\n### 推文响应\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"status\": {\n    \"id\": \"1234567890\",\n    \"text\": \"推文内容\",\n    \"created_at\": \"2024-01-01T00:00:00Z\",\n    \"replies\": 10,\n    \"retweets\": 100,\n    \"likes\": 1000,\n    \"views\": 50000,\n    \"media\": {\n      \"photos\": [{\"url\": \"...\"}],\n      \"videos\": [{\"url\": \"...\"}]\n    },\n    \"poll\": {\n      \"options\": [{\"label\": \"选项 1\", \"votes\": 100}]\n    }\n  },\n  \"author\": {\n    \"name\": \"用户名\",\n    \"screen_name\": \"handle\",\n    \"avatar_url\": \"...\",\n    \"followers\": 1000000\n  }\n}\n```\n\n### 用户资料响应\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"user\": {\n    \"screen_name\": \"elonmusk\",\n    \"name\": \"Elon Musk\",\n    \"description\": \"...\",\n    \"followers\": 236100712,\n    \"following\": 1292,\n    \"tweets\": 98573,\n    \"likes\": 214954,\n    \"media_count\": 4380,\n    \"verified\": true,\n    \"location\": \"...\",\n    \"joined\": \"Tue Jun 02 20:12:29 +0000 2009\"\n  }\n}\n```\n\n## 在 Python 中直接使用\n\n```python\nimport urllib.request\nimport json\n\ndef fetch_tweet(status_id: str) -> dict:\n    url = f\"https://api.fxtwitter.com/2/status/{status_id}\"\n    req = urllib.request.Request(\n        url,\n        headers={\"User-Agent\": \"MyBot/1.0\"}\n    )\n    with urllib.request.urlopen(req) as response:\n        return json.loads(response.read().decode('utf-8'))\n\n# 使用示例\ndata = fetch_tweet(\"1234567890\")\nprint(data[\"status\"][\"text\"])\n```\n\n## 限制\n\n- **速率限制**: FxTwitter 有速率限制，但免费使用\n- **User-Agent**: 必须提供 User-Agent header\n- **API 稳定性**: API 可能随 Twitter/X 变化而更新\n\n## 相关资源\n\n- **官方文档**: https://docs.fxtwitter.com/\n- **GitHub 项目**: https://github.com/FxEmbed/FxEmbed\n- **状态页面**: https://status.fxtwitter.com\n- **Crowdin 翻译**: https://crowdin.com/project/fxtwitter\n\n## 支持的域名\n\nFxTwitter 在以下域名运行（功能相同）：\n- `fxtwitter.com` / `api.fxtwitter.com`\n- `twittpr.com` (Discord sed 替换友好)\n- `fixupx.com` (用于 x.com 链接)\n- `fxbsky.app` (Bluesky 支持)\n\n## 故障排除\n\n### 404 错误\n- 推文可能被删除或设为私密\n- 推文 ID 不正确\n\n### 401 错误\n- 缺少 User-Agent header\n- 添加 `User-Agent: MyBot/1.0` 到请求头\n\n### 网络错误\n- 检查网络连接\n- FxTwitter 服务可能暂时不可用\n\n## 与 DeepReader 的区别\n\n| 特性 | FxTwitter Extract | DeepReader |\n|------|------------------|------------|\n| API | FxTwitter API | r.jina.ai |\n| 需要登录 | ❌ 否 | ❌ 否 |\n| 支持视频 | ✅ 是 | ✅ 是 |\n| 支持投票 | ✅ 是 | ✅ 是 |\n| 支持线程 | ✅ 是 | ✅ 是 |\n| 结构化数据 | ✅ JSON | Markdown |\n| 用户资料 | ✅ 支持 | ❌ 不支持 |\n\n## 作者\n\n基于 [FxEmbed/FxTwitter](https://github.com/FxEmbed/FxTwitter) 项目创建。\n","topics":["Twitter"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":529,"installsAllTime":20,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1772904458805,"updatedAt":1778491768590},"latestVersion":{"version":"1.0.0","createdAt":1772904458805,"changelog":"Initial release of fxtwitter-extract:\n\n- Extracts X (Twitter) content via FxTwitter API without the need for an API key.\n- Supports tweets, threads, user profiles, and includes text, images, video, polls, and quoting.\n- Provides command-line usage for extracting tweets, threads, profiles, and directly from URLs.\n- Returns structured JSON output for both tweet content and user profiles.\n- Requires setting a User-Agent header for API requests.\n- Includes troubleshooting tips, resource links, and a feature comparison section.","license":null},"metadata":null,"owner":{"handle":"nicoxia","userId":"s17axyfdchcnt2xhsjxts9yax5885qty","displayName":"nicoxia","image":"https://avatars.githubusercontent.com/u/7669766?v=4"},"moderation":null}