web-to-markdown について
web-to-markdownは、ドメインに応じた経路でURLを取得し、整形したMarkdownを返すスキルです。一般サイト、YouTube、WeChat・Zhihu・Feishuなどで抽出方法を切り替え、一般ページには代替経路も用意しています。
主な機能
- 01ドメイン別のURLルーティング
- 02ウェブページのMarkdown抽出
- 03YouTubeの字幕・コンテンツ抽出
- 04特殊サイト向けHTTP・ブラウザー代替処理
- 05任意のJSONメタデータ出力
活用シーン
- 01ウェブ記事のMarkdown化
- 02YouTube URLからの内容抽出
- 03WeChat・Zhihu・Feishuページの取得
- 04抽出元と解決済みURLの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rookie-ricardo/ erduo-skills --skill web-to-markdownインストール後、Claude Code で/web-to-markdownを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package-lock.jsonpackage.jsonagents/openai.yamlreferences/routing-and-notes.mdscripts/fetch_generic_fallback.mjsfetch_special_sites_http.mjsfetch_special_sites.mjsurl_to_markdown.mjs詳細
Web To Markdown
ドメインに応じた取得経路を適用して URL を利用可能な Markdown に変換し、整形済みのコンテンツをそのまま返します。
クイックワークフロー
- 入力 URL を正規化して検証します。
- 経路を選択します。
r.jina.ai:一般的な Web と X/Twitter。defuddle.md:YouTube のトランスクリプト/コンテンツ抽出。special-browser-fetch:WeChat/Zhihu/Feishu。
- Markdown テキストを返します(必要に応じて JSON メタデータも返します)。
一般的な URL(YouTube、WeChat/Zhihu/Feishu 以外)では、次のフォールバックチェーンを使用します。
- 最初に
r.jina.aiを試します。 - 失敗した場合は、直接 HTTP 取得と Readability にフォールバックします。
- 直接取得も失敗するか、シェルのようなコンテンツが返される場合は、ブラウザーによる抽出にフォールバックします。
コマンド
このスキルのディレクトリ(skills/web-to-markdown)から実行します。
npm install
node scripts/url_to_markdown.mjs <url>
Markdown とともにメタデータを返します。
node scripts/url_to_markdown.mjs <url> --json
特殊サイトのブラウザー抽出を強制します。
node scripts/fetch_special_sites.mjs <url> --json
ルーティングポリシー
- デフォルトの経路:
https://r.jina.ai/<url>。 - YouTube(
youtube.com、youtu.be):https://defuddle.md/<url>。 - X/Twitter(
x.com、twitter.com):https://r.jina.ai/<url>。 - WeChat/Zhihu/Feishu:
scripts/fetch_special_sites.mjsを実行します。 - 入力がすでにプロキシ形式(
https://defuddle.md/https://...またはhttps://r.jina.ai/https://...)の場合は、元の URL に正規化してからルーティングを再適用します。
特殊サイトの抽出動作
WeChat/Zhihu/Feishu には、2 段階の方法を使用します。
- 最初に
cuimpによる HTTP/TLS なりすましを試し、その後、Mozilla Readability で HTML を整形します。 - 第 1 段階が失敗するか、ブロックされたコンテンツやシェルのようなコンテンツが返される場合は、
puppeteer-extraによるブラウザーなりすましにフォールバックします。
- HTTP 段階では、
cuimpを介して最新の Chrome の TLS/HTTP プロファイルを偽装します。 - ブラウザー段階では、最新の Chrome ユーザーエージェントと標準の
sec-ch-uaヘッダーを偽装します。 - 既知のログインモーダルと背景オーバーレイを(可能な範囲で)削除します。
- ページをスクロールして、遅延読み込みされる記事ブロックを表示させます。
- 整形済みドキュメントを Mozilla Readability で解析します。
- 抽出した HTML 本文を Turndown で Markdown に変換します。
- ブラウザーの実行ファイルは、最初に
CHROME_PATHを確認し、その後システムの Chrome/Chromium/Edge のパスから解決します。
特殊サイトの抽出がボット対策チェック、アカウント限定ページ、またはネットワーク制限によって失敗した場合は、失敗したことを明確に伝え、代替の入力(たとえばページの生テキスト)を求めてください。
出力仕様
通常の使用時は、Markdown のみを出力します。
--json を使用した場合は、次の内容を返します。
source:バックエンドのソース(r.jina.ai、defuddle、cuimp、browser-readability)。strategy:選択した経路(r-jina、defuddle、special-http-fetch、special-browser-fetch-fallback)。requestedUrl:入力された元の URL。resolvedUrl:正規化後/最終的な URL。markdown:抽出した Markdown 本文。
リソース
- references/routing-and-notes.md:ドメインのルーティングルールと運用上の注意事項。
scripts/url_to_markdown.mjs:メインのエントリーポイント。scripts/fetch_special_sites_http.mjs:WeChat/Zhihu/Feishu の HTTP なりすまし取得ツール(cuimpJS)。scripts/fetch_special_sites.mjs:2 段階抽出ツール(HTTP 優先、ブラウザーにフォールバック)。
コメント
Markdown 対応