mcpField
X
x-fetcher

x-fetcher

github.com/wlzh生産性69346 回インストール1 日前に更新
リポジトリ

x-fetcher について

x-fetcherは、Xの投稿やX Articleを取得するコマンドラインスキルです。投稿をMarkdownで保存でき、反応データの取得、メディアのダウンロード、EXTEND.mdによる保存設定にも対応します。

主な機能

  1. 01通常の投稿とX Articleの取得
  2. 02いいね・リポスト・閲覧数・ブックマーク数の取得
  3. 03Markdownへの自動保存
  4. 04画像と動画の任意ダウンロード
  5. 05EXTEND.mdによる保存設定

活用シーン

  1. 01Xの投稿や長文記事のアーカイブ
  2. 02投稿の反応データの記録
  3. 03画像や動画のローカル保存
  4. 04Markdownファイルの既定保存先の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wlzh/skills --skill x-fetcher

インストール後、Claude Code で/x-fetcherを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
.info
COMPLETION.md
EXTEND.md.example
fetch_x.py
LICENSE
MEDIA.md
PROJECT.md
QUICKREF.md
README.md
requirements.txt
USAGE.md
scripts/
main.py
quick-start.sh
requirements.txt
test_skill.py

詳細

X Fetcher

X(Twitter)の投稿内容を取得するコマンドラインツールです。通常のツイートと X Article の長文記事に対応し、Markdown 形式で自動保存します。

プロジェクトの出典: この Skill は Jane-xiaoer/x-fetcher プロジェクトを基にしています。

機能

  • 通常のツイートを取得します(テキスト、画像、動画リンク)
  • X Article の長文記事を取得します(全文、Markdown 形式)
  • エンゲージメントデータを取得します(いいね、リポスト、閲覧数、ブックマーク数)
  • 書式設定された Markdown ファイルとして自動保存します
  • デフォルトのダウンロード先を設定できます

スクリプトディレクトリ

スクリプトは scripts/ サブディレクトリにあります。

パスの解決:

  1. SKILL_DIR = この SKILL.md ファイルがあるディレクトリ
  2. スクリプトのパス = ${SKILL_DIR}/scripts/main.py

設定(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回呼び出し、すべての質問を提示します。

質問 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 / falseMarkdown ファイルを自動保存するかどうか
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-saveMarkdown ファイルを自動保存しません

対応する 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

初回使用時に依存関係が自動的に確認され、インストールされていない場合はインストールコマンドが表示されます。

拡張機能のサポート

EXTEND.md を通じてカスタム設定に対応しています。パスと対応するオプションについては、設定のセクションを参照してください。

コメント