feedgrab について
feedgrabは、URLの内容をMarkdownに抽出するスキルです。Webやソーシャルメディアの情報を構造化して読みたい人向けに、サイトに応じた方法で取得し、ファイルに保存します。
主な機能
- 01URLからコンテンツを取得
- 02多様なソーシャル・出版サイトに対応
- 03サイト別の抽出方法を選択
- 04構造化Markdownファイルを保存
- 05クリップボードの内容を読み取り
活用シーン
- 01URLから記事や投稿を抽出
- 02動画の字幕や文字起こしを取得
- 03WebコンテンツをMarkdownで保存
- 04クリップボード内のURLを取得
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ibigqiang/ feedgrab --skill feedgrabインストール後、Claude Code で/feedgrabを入力して読み込まれたか確認します。
詳細
feedgrab — ユニバーサルコンテンツ取得ツール
URL を渡すと、構造化された Markdown が返されます。17 以上のプラットフォームに対応し、詳細な抽出を行います。
起動条件
ユーザーが URL を提示し、そのコンテンツの取得・抽出・閲覧を希望する場合に起動します:
/feedgrab <URL>- 「この記事を取得して」
- 「このツイート/投稿を読んで」
- 「抓取这个链接」
- 対応プラットフォームの任意の URL
前提条件の確認
取得する前に、feedgrab がインストールされていることを確認します:
which feedgrab 2>/dev/null || command -v feedgrab 2>/dev/null
インストールされていない場合、ユーザーに次のように伝えます:
feedgrab is not installed. Run `/feedgrab-setup` or manually:
pip install feedgrab[all]
feedgrab setup
その後、停止します。feedgrab がない状態で処理を続けないでください。
対応プラットフォーム
| プラットフォーム | URL パターン | 方法 |
|---|---|---|
| X/Twitter | x.com/*/status/*, twitter.com/* | GraphQL → FxTwitter → Syndication → oEmbed → Jina → Playwright |
| WeChat(微信公众号) | mp.weixin.qq.com/* | Playwright JS evaluate → Jina |
| Xiaohongshu(小红书) | xiaohongshu.com/explore/*, xhslink.com/* | API(xhshow)→ Pinia Store injection → Jina → Playwright |
| YouTube | youtube.com/watch?v=*, youtu.be/*, Shorts | InnerTube API → yt-dlp 字幕 → Groq Whisper |
| GitHub | github.com/*/* | REST API(中国語 README を優先+サブディレクトリをスキャン) |
| LinuxDo / Discourse | linux.do/t/* | Discourse topic JSON API → CDP → Playwright in-page fetch → Jina |
| IDCFlare / Discourse | idcflare.com/t/* | Discourse topic JSON API → CDP → Playwright in-page fetch → Jina |
| Feishu/Lark(飞书) | feishu.cn/docx/*, feishu.cn/wiki/* | Open API → CDP → Playwright PageMain → Jina |
| KDocs(金山文档) | kdocs.cn/l/* | Playwright ProseMirror DOM(仮想スクロール+CDP) |
| FlowUs(息流) | flowus.cn/share/*, flowus.cn/*/<uuid> | HTTP API → CDP/Launch browser → Jina;オンライン署名付き画像またはローカル添付ファイル |
| Youdao Note(有道云笔记) | share.note.youdao.com/* | JSON API → Playwright iframe → Jina |
| Zhihu(知乎) | zhihu.com/question/*/answer/*, zhuanlan.zhihu.com/p/* | API v4 → Playwright CDP/DOM → Jina |
| Bilibili(B站) | bilibili.com/video/*, b23.tv/* | API メタデータ+3 段階の字幕フォールバック(v2 → WBI v2 → Whisper) |
| Xiaoyuzhou(小宇宙) | xiaoyuzhoufm.com/episode/* | SSR __NEXT_DATA__ + Groq Whisper による文字起こし |
| Ximalaya(喜马拉雅) | ximalaya.com/sound/*, m.ximalaya.com/sound/* | Web Revision API + canPlay による段階的な機能低下 + Groq Whisper |
| Telegram | t.me/* | Telethon |
| HackerNews | news.ycombinator.com/item?id=* | Firebase API v0(item.json + 第 1 階層のコメント + hn top/new/best/ask/show/jobs のリスト一括取得) |
| Medium | medium.com/*, *.medium.com/* | Jina Reader → JSON-LD articleBody → Stealth Browser;RSS 経由でユーザー/出版物を一括取得 |
reddit.com/r/*/comments/*, redd.it/* | old.reddit.com .json + self-UA → CDP → Stealth Playwright + 保存済みセッション → Jina(REDDIT_REPLY_MODE=top/tree/all;reddit-sub/reddit-so 経由で一括取得/検索) | |
weibo.com/*, weibo.cn/*, m.weibo.cn/status/* | m.weibo.cn /statuses/show + container/getIndex + SSR $render_data フォールバック(SUB Cookie は任意) | |
| Douyin(抖音) | douyin.com/video/*, v.douyin.com/*(短縮リンク) | CDP → Stealth Playwright + 保存済みセッション → SSR RENDER_DATA → Jina(ブラウザー側で署名。アルゴリズムの解析は不要) |
| Zsxq(知识星球) | articles.zsxq.com/id_*.html, wx.zsxq.com/group/*/topic/*, t.zsxq.com/*(短縮) | HTTP Cookie(記事 SSR HTML/api.zsxq.com topic JSON)→ CDP → Stealth Playwright → Jina(認証で保護されており、ログインが必要) |
| RSS | RSS/Atom フィード URL | feedparser |
| ペイウォール付きニュース(300 以上) | NYT/WSJ/FT/Economist/Bloomberg... | JSON-LD → Googlebot/Bingbot UA → AMP → EU IP → archive.today → Google Cache → Jina |
| 任意のウェブページ | その他の任意の URL | JSON-LD の事前スキャン → Jina Reader フォールバック |
パイプライン
ステップ 1:コンテンツを取得
feedgrab "$ARGUMENTS"
CLI がプラットフォームを自動検出し、適切な取得ツールに振り分けます。
Step 2: 出力ファイルを確認する
feedgrab は出力を OUTPUT_DIR(デフォルト:./output/)に保存します。CLI の出力で保存されたファイルのパスを確認してください。通常は次の形式です。
output/X/author_date:title.mdoutput/mpweixin/author_date:title.mdoutput/XHS/author_date:title.mdoutput/YouTube/author_date:title.mdoutput/GitHub/author_date:title.mdoutput/LinuxDo/author_date:title.mdoutput/IDCFlare/author_date:title.mdoutput/Feishu/author_date:title.mdoutput/KDocs/author_date:title.mdoutput/FlowUs/author_date:title.mdoutput/NoteYouDao/author_date:title.mdoutput/Zhihu/author_date:title.mdoutput/Bilibili/author_date:title.mdoutput/Xiaoyuzhou/author_date:title.mdoutput/Ximalaya/author_date:title.mdoutput/Web/author_date:title.md(ペイウォール/一般的なページ)
Step 3: 読み込んで提示する
出力された .md ファイルを読み込み、内容をユーザーに提示します。ファイルには次の内容が含まれます。
- YAML フロントマター(タイトル、ソース、著者、公開日、いいね、タグなど)
- 記事/ツイート/投稿の全文(Markdown 形式)
- 画像(リモート URL、またはメディアのダウンロードが有効な場合はローカルパス)
クリップボードモード
ユーザーが「クリップボードから取得」と言った場合、または URL に & が含まれる場合(PowerShell で問題が発生するため):
feedgrab clip
システムのクリップボードから URL を読み込みます。
エラー処理
| エラー | 解決方法 |
|---|---|
feedgrab: command not found | /feedgrab-setup を実行します |
| Cookie の期限切れ/401/403 | feedgrab login <platform> で更新します |
| Jina のタイムアウト(30s) | feedgrab が Playwright で自動再試行します |
| レート制限(429) | 設定されている場合、feedgrab が Cookie を自動で切り替えます |
OUTPUT_DIR が未設定 | feedgrab setup で設定します |
ヒント
- Twitter の詳細抽出(閲覧数、ブックマーク、スレッド)には、
feedgrab login twitterで Cookie を設定します - WeChat の記事:単一の記事であればログインは不要です
- 小紅書:API モード(高速、ブラウザー不要)を使用するには
pip install xhshow - GitHub:レート制限を引き上げるには
GITHUB_TOKENを設定します(5000/時、未設定の場合は 60/時) - LinuxDo/Discourse:トピックが非公開の場合、またはサイトでブラウザーセッション/Cloudflare Cookie が必要な場合は、
feedgrab login linuxdo - IDCFlare/Discourse:トピックが非公開の場合、またはサイトでブラウザーセッション/Cloudflare Cookie が必要な場合は、
feedgrab login idcflare - Discourse フォーラム:デフォルトの返信モードでは OP とトピック作成者の追加返信のみを取得します。
LINUXDO_REPLY_MODE/IDCFLARE_REPLY_MODE(author/all/none)で切り替えられます - Reddit:ネストされた返信には
REDDIT_REPLY_MODE=tree、追加の morechildren 展開にはREDDIT_REPLY_MODE=allを使用します。reddit-so検索には/feedgrab-batchを使用します - Feishu:Open API にアクセスするには
FEISHU_APP_IDとFEISHU_APP_SECRETを設定します - KDocs:セッションを保存するには
feedgrab login kdocsを実行します(またはKDOCS_CDP_ENABLED=trueを設定して、起動中の Chrome を再利用します) - FlowUs:有料/非公開のドキュメントには
feedgrab login flowusを実行します。画像はデフォルトで署名付きオンライン URL を使用します。添付ファイルをローカルに保存するにはFLOWUS_DOWNLOAD_IMAGES=trueを設定します - Zhihu:セッションを保存するには
feedgrab login zhihuを実行します(回答の全文を取得できるようになります) - Bilibili の字幕:無料プランでは
player/v2と WBI がすぐに使えます。字幕のない動画で Whisper によるフォールバックを有効にするにはBILIBILI_SUBTITLE_WHISPER=trueを設定します - Xiaoyuzhou/Ximalaya:Whisper による文字起こしには
GROQ_API_KEYを設定します(無料プランではメタデータと番組紹介のみ) - ペイウォールのあるサイト:
PAYWALL_ENABLED=trueがデフォルトで有効なため、追加設定は不要です - 問題を診断するには
feedgrab doctorを実行します
コメント
Markdown 対応