本文へ移動
cccskills
無料GitHub で公開

x-fetcher

抓取 X (Twitter) 推文和长文章的命令行工具。支持普通推文(文字、图片、视频链接)和 X Article 长文章(完整正文,Markdown 格式),自动保存为 Markdown 文件。基于 Jane-xiaoer/x-fetcher 项目。

Use when user mentions "抓取推文", "下载推文", "保存 X 文章", "fetch tweet", or provides x.com/twitter.com URLs.

インストール方法を見る

含まれるファイル(17)

  • SKILL.md7.6 KB
  • .gitignore202 B
  • .info566 B
  • COMPLETION.md5.9 KB
  • EXTEND.md.example2.1 KB
  • fetch_x.py10.4 KB
  • LICENSE1.0 KB
  • MEDIA.md5.3 KB
  • PROJECT.md4.8 KB
  • QUICKREF.md2.6 KB
  • README.md4.3 KB
  • requirements.txt17 B
  • scripts/main.py10.3 KB
  • scripts/quick-start.sh2.1 KB
  • scripts/requirements.txt29 B
  • scripts/test_skill.py5.0 KB
  • USAGE.md5.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

X Fetcher

抓取 X (Twitter) 帖子内容的命令行工具,支持普通推文和 X Article 长文章,自动保存为 Markdown 格式。

工程化来源: 本 Skill 基于 Jane-xiaoer/x-fetcher 项目。

功能

  • 抓取普通推文(文字、图片、视频链接)
  • 抓取 X Article 长文章(完整正文,Markdown 格式)
  • 获取互动数据(点赞、转发、浏览量、书签数)
  • 自动保存为格式化的 Markdown 文件
  • 可配置默认下载目录

Script Directory

脚本位于 scripts/ 子目录。

路径解析:

  1. SKILL_DIR = 此 SKILL.md 文件所在目录
  2. 脚本路径 = ${SKILL_DIR}/scripts/main.py

Preferences (EXTEND.md)

使用 Bash 检查 EXTEND.md 是否存在(优先级顺序):

# 首先检查项目级
test -f .x-fetcher/EXTEND.md && echo "project"

# 然后检查用户级(跨平台:$HOME 适用于 macOS/Linux/WSL)
test -f "$HOME/.x-fetcher/EXTEND.md" && echo "user"

┌────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├────────────────────────────────────┼───────────────────┤ │ .x-fetcher/EXTEND.md │ 项目目录 │ ├────────────────────────────────────┼───────────────────┤ │ $HOME/.x-fetcher/EXTEND.md │ 用户主目录 │ └────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 结果 │ 动作 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 已找到 │ 读取、解析、应用设置 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 未找到 │ 必须运行首次设置(见下文)— 不要静默创建默认值 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘

EXTEND.md 支持: 默认下载目录 | 媒体处理方式

首次设置(阻塞式)

关键: 当未找到 EXTEND.md 时,在创建 EXTEND.md 之前,你必须使用 AskUserQuestion 询问用户的偏好。绝不要在未询问的情况下创建带有默认值的 EXTEND.md。这是一个阻塞式操作 — 在设置完成之前不要继续进行任何转换。

在一次调用中使用 AskUserQuestion 提出所有问题:

问题 1 — header: "下载目录", question: "推文保存的默认目录路径?"

  • "x-fetcher(推荐)" — 保存到 ./x-fetcher/{username}/{tweet-id}.md
  • (用户可以选择 "Other" 来输入自定义路径)

问题 2 — header: "保存位置", question: "偏好设置保存到?"

  • "用户(推荐)" — ~/.x-fetcher/(所有项目)
  • "项目" — .x-fetcher/(仅此项目)

用户回答后,在所选位置创建 EXTEND.md,确认 "偏好设置已保存到 [path]",然后继续。

支持的配置键

键默认值可选值描述
default_output_dir空路径或空默认输出目录(空 = ./x-fetcher/)
auto_savetruetrue / false自动保存 Markdown 文件
download_mediaaskask / true / false是否下载媒体文件到本地(ask = 每次询问,true = 总是下载,false = 从不下载)

值优先级:

  1. CLI 参数
  2. EXTEND.md
  3. Skill 默认值

媒体下载说明:

  • 当 download_media 设置为 true 时,图片会保存到 imgs/ 目录,视频保存到 videos/ 目录
  • Markdown 文件中的媒体链接会自动更新为本地相对路径
  • 支持的媒体格式:图片(jpg, png, gif, webp),视频(mp4, mov, webm)

使用

python3 ${SKILL_DIR}/scripts/main.py <url>
python3 ${SKILL_DIR}/scripts/main.py <url> --output /path/to/save
python3 ${SKILL_DIR}/scripts/main.py <url> --download-media
python3 ${SKILL_DIR}/scripts/main.py <url> --json

选项

选项描述
<url>推文或文章 URL
--output <path>输出路径(目录或文件)
--download-media下载图片/视频资源到本地 imgs/ 和 videos/,并将 Markdown 链接重写为本地相对路径
--jsonJSON 输出(不保存 Markdown)
--no-save不自动保存 Markdown 文件

支持的 URL

  • https://x.com/<user>/status/<id>
  • https://twitter.com/<user>/status/<id>

输出

普通推文

# @username 的推文

> 作者: **Author Name** (@username)
> 发布时间: 2024-01-01 12:00:00
> 原文链接: https://x.com/user/status/123

---

推文内容...

## 媒体

![媒体1](https://pbs.twimg.com/media/example.jpg)

---

## 互动数据

- ❤️ 点赞: 1,234
- 🔁 转发: 567
- 👀 浏览: 89,000
- 💬 回复: 123

X Article 长文章

# 文章标题

> 作者: **Author Name** (@username)
> 发布时间: 2024-01-01 12:00:00
> 修改时间: 2024-01-02 10:30:00
> 原文链接: https://x.com/user/status/123

---

![封面](https://pbs.twimg.com/media/example.jpg)

完整文章内容(Markdown 格式)...

---

## 互动数据

- ❤️ 点赞: 206,351
- 🔁 转发: 28,631
- 👀 浏览: 115,555,283
- 🔖 书签: 571,495

文件结构: {output_dir}/{username}/{tweet-id}.md

工作原理

  1. 从 URL 提取 tweet ID
  2. 尝试 fxtwitter API(支持 Article)
  3. 备选 syndication API
  4. 解析并格式化输出
  5. 自动保存为 Markdown 文件

限制

  • 依赖第三方 API(fxtwitter),可能因服务变更而失效
  • 私密账号的内容无法抓取
  • 部分媒体内容可能无法获取完整 URL

依赖

  • Python 3.6+
  • requests >= 2.25.0

首次使用时会自动检查依赖,如果未安装会提示安装命令。

Extension Support

通过 EXTEND.md 支持自定义配置。有关路径和支持的选项,请参阅 Preferences 部分。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

🔥 用 Gordon Ramsay 风格毒舌吐槽代码质量,生成搞笑且实用的代码审查报告

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

通用图片生成 Skill,支持多种 AI 模型(ModelScope、Gemini、RunningHub 等),可被其他 Skills 调用

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

Automate the full QuarkPanTool → mswnlz GitHub content publishing pipeline. Supports Quark / Baidu / Aliyun drives with multi-account rotation. Use when the user provides share URLs and wants: (1) auto-detect drive type and route to correct handler, (2) save resources with automatic account rotation, (3) clean junk files from shared folders, (4) copy promotional files into each folder, (5) generate permanent encrypted share links, (6) auto-classify items into local content dirs (book/movies/AIknowledge/tools/etc.), (7) append/update YYYYMM.md and README index, (8) local git commit, (9) send unified Telegram notifications to multiple groups, (10) rebuild site and deploy to Cloudflare Pages.

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

文本转语音工具 - 默认 MiniMax TTS,支持切换 Edge TTS 和 Kokoro TTS (v1.1-zh)

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

视频变声处理工具 - 从视频提取音频,调用 voice-changer skill 变声后合并回视频。用户要求视频变声、给视频换声音、视频音色转换或处理视频音频时使用。

日本語の概要は準備中です。原文の説明を表示しています。

wlzh/skills6832026年10月11日 更新

wlzh のスキルをすべて見る

このスキルの問題を報告する