Communitygithub.com

ShareXtract

プロトコルファーストな公開共有コンテンツ抽出機能とAIチャット、ソーシャル投稿、メディア、Webページ向けのエージェントスキルです。

ShareXtract とは?

ShareXtractは、AIエージェント向けに設計された公開共有コンテンツ抽出ツールです。YouTube、TikTok、Douyin、Xiaohongshu、Zhihu、Weiboなどの主要プラットフォームから、最も高い忠実度と低コストでコンテンツを抽出します。コマンドラインインターフェース(CLI)、Model Context Protocol(MCP)、HTTP APIなど複数のインターフェースを提供し、抽出結果はJSONまたはMarkdown形式で出力されます。このツールは公開データにのみアクセスし、ログインウォール、CAPTCHA、ペイウォールなどのアクセス制御をバイパスしない厳格なガードレールを備えています。各プラットフォーム専用のアダプターを実装しており、oEmbedやRSS/Atomなどの公開標準プロトコル、第一者JSONデータ、構造化HTMLを優先的に使用することで、高い信頼性と透明性を実現します。

対応~Claude Code~Codex CLI~Cursor
npx skills add wuaishare/sharextract

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ShareXtract は何をしますか?

利用可能な最高の忠実度と最低コストの方法で公開共有コンテンツを抽出し、その取得方法を保持します。

ワークフロー

  1. 指定されたURLは公開入力としてのみ扱います。ユーザーが明示的に認証ワークフローを要求し、プラットフォームがそれを許可しない限り、ブラウザのCookie、セッショントークン、認証情報、プライベートコネクタデータを再利用してはなりません。
  2. 以下を実行します: python -m sharextract "URL" --format json
  3. 最も強い出所を持つ結果を優先します:
    • ドキュメント化された公開API、オープンシンディケーション標準(RSS/Atom)、またはoEmbed;
    • 第一者の公開JSON/ハイドレーションデータ;
    • JSON-LD/OpenGraph/構造化HTML;
    • yt-dlpなどの専用公開コンテンツ抽出ツール;
    • 読み取り可能な静的HTML;
    • 公開ページが本当にJavaScriptを必要とする場合のみ、ブラウザレンダリング。
  4. 結果をダウンストリームで使用する前に、extraction_method、confidence、warnings、canonical_url、metadataを検査します。フィードの場合は metadata.feed.entries、トランスクリプトの場合は metadata.transcript.cues、通常のページの場合は metadata.syndication_feeds と metadata.subtitle_tracks が宣言された公開フォローアップリソースを公開することがあります。
  5. 元の意味とメディア参照を保持します。不足しているテキスト、作者、タイムスタンプ、プラットフォームメタデータを黙って捏造してはなりません。
  6. 専用ルートが失敗した場合は、ルーターがフォールバックできるようにし、失敗したルートを警告として報告します。
  7. ログインウォール、CAPTCHA、ペイウォール、WAFチャレンジ、プライベートリンク、その他のアクセス制御をバイパスするのではなく、停止します。

コマンド

デフォルトの正規化JSON:

python -m sharextract "https://example.com/share/..." --format json

読み取り可能なMarkdown:

python -m sharextract "https://example.com/article" --format markdown

一般的なWeb抽出を強制:

python -m sharextract "https://example.com/article" --strategy web

メディアメタデータのみ:

python -m sharextract "https://www.youtube.com/watch?v=..." --strategy media

オプションの高品質Web/メディア依存関係:

python -m pip install -e ".[all]"

オプションのサービスインターフェース:

python -m pip install -e ".[mcp,service]"
sharextract-mcp
sharextract-api --port 8787

サービスレイヤーは、同一の公開コンテンツ抽出契約のトランスポートとしてのみ使用します。プラットフォーム固有のロジックは、MCP/HTTPハンドラーではなく、アダプターに属します。

出力契約

JSON結果には、source_url、canonical_url、platform、kind、extraction_method、confidence、title、author、text、markdown、オプションの html、正規化されたメッセージ、メディア参照、metadata、warnings、retrieved_at が含まれます。

プラットフォームの処理方法を決定する際は references/platform-matrix.md を読んでください。プラットフォームアダプターを追加または変更する前に references/adding-adapters.md を読んでください。新しい抽出ツールを作成する代わりに既存のオープンソース抽出ツールを再利用するかどうかを決定する際は references/ecosystem.md を読んでください。

ガードレール

ShareXtractは、リクエスト者にとってすでに公開されているコンテンツを対象としています。アンチボットバイパスフレームワークではありません。ステルス、CAPTCHA解決、認証情報収集、署名回避、大量アカウントローテーション、アクセス制御バイパスを追加しないでください。

不安定な第一者エンドポイントについては、未文書としてラベル付けし、公開ページのフォールバックを維持してください。静的フィクスチャでテストでき、コンテンツが検証できない場合にフェイルクローズするアダプターを優先してください。

Kuaishou 公開動画メタデータ

Kuaishouの公開動画の場合、最新の公式 v.kuaishou.com または kuaishou.com/f/ の共有/リンクコピーURLを推奨します。ネイティブアダプターは、同じ公開リダイレクトレスポンスから匿名PCページのApollo SSRを消費し、メタデータのみをエクスポートします。ベアの短い動画URLでは visionVideoDetail が省略される場合があります。その場合は、did Cookieを作成したりプライベートGraphQL詳細APIを呼び出したりせずに、新しい公式共有リンクを要求してください。Apollo状態から photoUrl、manifest、adaptive-representation、一時的なCDN MP4 URLをエクスポートしないでください。

Xiaohongshu 公開ノート

Xiaohongshuノートの場合、最新の公式共有/リンクコピーURL、または公式のxhslink短縮リンクを使用してください。ShareXtractは、その公開URLから既存の xsec_token を消費し、第一者のSSR初期状態を読み取ります。トークンの生成/更新、X-s/X-tリクエスト署名の実装は行いません。現在のトークンがないベアのノートURLは、新しい公式共有リンクを取得するためのガイダンスとともに拒否されるべきです。ノート状態に埋め込まれた一時的な動画/字幕ストリームURLをエクスポートしないでください。

Douyin 公開動画メタデータ

直接の公開Douyin動画URLまたは v.douyin.com 短縮リンクの場合、extract() を通じてネイティブのメタデータ専用アダプターを使用します。通常のモバイルブラウザ表現を使用して、匿名の第一者Jingxuan SSR/VideoObjectサーフェスを読み取ります。埋め込まれた video_model データからの一時的な再生/ダウンロードURLをエクスポートせず、a_bogus、デバイス署名、コピーされたCookie、ログイン済みセッション状態を追加しないでください。

TikTok 公開動画

直接の公開TikTok動画URLの場合、通常の extract() ルーターを通じてネイティブのドキュメント化されたoEmbedルートを使用します。このoEmbedパスにはTikTokユーザー承認やアクセストークンは必要ありません。通常の公開埋め込みメタデータのために、認証済みDisplay APIアクセスを代用しないでください。

Weibo 公開ステータス

公開WeiboステータスURLの場合、通常の extract() ルーターを通じてネイティブアダプターを使用します。Weiboの匿名モバイルPWA JSONルートを使用し、isLongText とマークされたステータスのみ公開 extend ルートを要求します。公開PWAルートが利用できない場合でも、ログインCookieや認証済みセッション状態を追加しないでください。

Zhihu 公開コンテンツ

Zhihuの公開回答やZhuanlan記事の場合、通常の extract() ルーターを通じてネイティブアダプターを使用します。回答アダプターはZhihuの匿名公開Tardis SSRリーダーを使用します。記事アダプターはTardisフォールバック付きの公開埋め込み初期状態を優先します。ブロックされたZhihu APIルートを機能させるために、x-zse、d_c0、コピーされたCookie、ログイン済みブラウザ状態を追加しないでください。

アダプター健全性

自動化ワークフローで脆弱なプラットフォームルートに依存する前に、以下を使用して決定論的な健全性を検査します:

python -m sharextract --health

明示的なリリース/プロトコル検証には、レジストリ内の固定された公開サンプルに対してのみ --live を使用します。任意のターゲットURLを健全性プローブに変えないでください。references/adapter-health.md を参照してください。

関連スキル