x-fetcher について
x-fetcherは、Xの投稿やX Articleを取得するコマンドラインスキルです。投稿をMarkdownで保存でき、反応データの取得、メディアのダウンロード、EXTEND.mdによる保存設定にも対応します。
主な機能
- 01通常の投稿とX Articleの取得
- 02いいね・リポスト・閲覧数・ブックマーク数の取得
- 03Markdownへの自動保存
- 04画像と動画の任意ダウンロード
- 05EXTEND.mdによる保存設定
活用シーン
- 01Xの投稿や長文記事のアーカイブ
- 02投稿の反応データの記録
- 03画像や動画のローカル保存
- 04Markdownファイルの既定保存先の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wlzh/ skills --skill x-fetcherインストール後、Claude Code で/x-fetcherを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignore.infoCOMPLETION.mdEXTEND.md.examplefetch_x.pyLICENSEMEDIA.mdPROJECT.mdQUICKREF.mdREADME.mdrequirements.txtUSAGE.mdscripts/main.pyquick-start.shrequirements.txttest_skill.py詳細
X Fetcher
X(Twitter)の投稿内容を取得するコマンドラインツールです。通常のツイートと X Article の長文記事に対応し、Markdown 形式で自動保存します。
プロジェクトの出典: この Skill は Jane-xiaoer/x-fetcher プロジェクトを基にしています。
機能
- 通常のツイートを取得します(テキスト、画像、動画リンク)
- X Article の長文記事を取得します(全文、Markdown 形式)
- エンゲージメントデータを取得します(いいね、リポスト、閲覧数、ブックマーク数)
- 書式設定された Markdown ファイルとして自動保存します
- デフォルトのダウンロード先を設定できます
スクリプトディレクトリ
スクリプトは scripts/ サブディレクトリにあります。
パスの解決:
SKILL_DIR= この SKILL.md ファイルがあるディレクトリ- スクリプトのパス =
${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_save | true | true / false | Markdown ファイルを自動保存するかどうか |
download_media | ask | ask / true / false | メディアファイルをローカルにダウンロードするかどうか(ask = 毎回確認、true = 常にダウンロード、false = ダウンロードしない) |
値の優先順位:
- CLI 引数
- EXTEND.md
- 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 リンクをローカルの相対パスに書き換えます |
--json | JSON 形式で出力します(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,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
---

完整文章内容(Markdown 格式)...
---
## 互动数据
- ❤️ 点赞: 206,351
- 🔁 转发: 28,631
- 👀 浏览: 115,555,283
- 🔖 书签: 571,495
ファイル構成: {output_dir}/{username}/{tweet-id}.md
仕組み
- URL から tweet ID を抽出します
- fxtwitter API を試します(Article に対応)
- 代替として syndication API を使用します
- 解析して出力を整形します
- Markdown ファイルとして自動保存します
制限事項
- サードパーティ API(fxtwitter)に依存しているため、サービスの変更により動作しなくなる場合があります
- 非公開アカウントのコンテンツは取得できません
- 一部のメディアコンテンツでは、完全な URL を取得できない場合があります
依存関係
- Python 3.6+
- requests >= 2.25.0
初回使用時に依存関係が自動的に確認され、インストールされていない場合はインストールコマンドが表示されます。
拡張機能のサポート
EXTEND.md を通じてカスタム設定に対応しています。パスと対応するオプションについては、設定のセクションを参照してください。