Communitygithub.com

wuaishare/sharextract

Protokollbasierter Extraktor für öffentliche Inhalte aus KI-Chats, sozialen Netzwerken, Medien und Webseiten als Agent-Skill.

Was ist sharextract?

ShareXtract ist ein protokollzentrierter Skill (Agent-Skill) für KI-Agenten wie Claude Code, Cursor oder Codex, der öffentlich geteilte Inhalte mit höchster Genauigkeit und den geringstmöglichen Kosten extrahiert. Er unterstützt verschiedene Extraktionsmethoden von öffentlichen APIs über oEmbed, RSS/Atom, JSON-LD/OpenGraph bis hin zu spezialisierten Extraktoren wie yt-dlp. Die Ausgabe erfolgt stets als normiertes JSON- oder Markdown-Format mit Metadaten zu Quelle, Vertrauenswürdigkeit und Extraktionspfad. Der Skill legt großen Wert auf Provenienz – er bevorzugt dokumentierte, öffentliche Verfahren vor Browser-Rendering oder instabilen Endpunkten. Plattform-spezifische Adapter existieren u. a. für Kuaishou, Xiaohongshu, Douyin, TikTok, Weibo und Zhihu, wobei stets die anonymen, öffentlichen Routen verwendet werden. Der Skill unterliegt strengen Guardrails: Er umgeht keine Login-Walls, CAPTCHAs oder Zugangskontrollen und verändert keine Cookie- oder Session-Daten. Entwickler profitieren von einer transparenten Integrität der extrahierten Daten durch Felder wie extraction_method, confidence, warnings und metadata.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add wuaishare/sharextract

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht sharextract?

Extrahiere öffentlich geteilte Inhalte mit der höchsten Genauigkeit und den geringstmöglichen Kosten und bewahre dabei die Methode der Extraktion.

Arbeitsablauf

  1. Behandle die übergebene URL ausschließlich als öffentliche Eingabe. Verwende niemals Browser-Cookies, Sitzungstoken, Anmeldedaten oder private Connector-Daten, es sei denn, der Benutzer fordert explizit einen authentifizierten Workflow an und die Plattform erlaubt dies.
  2. Führe aus: python -m sharextract "URL" --format json
  3. Bevorzuge das Ergebnis mit der stärksten Provenienz:
    • dokumentierte öffentliche API, offene Syndication-Standards (RSS/Atom) oder oEmbed;
    • first-party öffentliche JSON-/Hydration-Daten;
    • JSON-LD/OpenGraph/strukturiertes HTML;
    • spezialisierter Public-Content-Extraktor wie yt-dlp;
    • lesbares statisches HTML;
    • Browser-Rendering nur, wenn eine öffentliche Seite tatsächlich JavaScript benötigt.
  4. Prüfe extraction_method, confidence, warnings, canonical_url und metadata, bevor du das Ergebnis downstream verwendest. Für Feeds verwende metadata.feed.entries; für Transkripte verwende metadata.transcript.cues; für normale Seiten können metadata.syndication_feeds und metadata.subtitle_tracks auf deklarierte öffentliche Folge-Ressourcen hinweisen.
  5. Bewahre die ursprüngliche Bedeutung und Medien-Referenzen. Erfinde keine fehlenden Texte, Autoren, Zeitstempel oder Plattform-Metadaten.
  6. Wenn ein spezialisierter Pfad fehlschlägt, erlaube dem Router einen Fallback und melde den fehlgeschlagenen Pfad in warnings.
  7. Stoppe, anstatt Login-Walls, CAPTCHAs, Paywalls, WAF-Herausforderungen, private Links oder andere Zugangskontrollen zu umgehen.

Befehle

Standard normiertes JSON:

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

Lesbares Markdown:

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

Web-Extraktion erzwingen:

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

Nur Medien-Metadaten:

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

Optionale höherwertige Web-/Medien-Abhängigkeiten:

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

Optionale Service-Oberflächen:

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

Verwende die Service-Schichten nur als Transporte um denselben Vertrag der Public-Content-Extraktion; plattformspezifische Logik gehört in Adapter, nicht in MCP/HTTP-Handler.

Ausgabe-Vertrag

Das JSON-Ergebnis enthält source_url, canonical_url, platform, kind, extraction_method, confidence, title, author, text, markdown, optional html, normalisierte Nachrichten, Medien-Referenzen, metadata, warnings und retrieved_at.

Lies references/platform-matrix.md bei der Entscheidung, wie eine Plattform behandelt werden soll. Lies references/adding-adapters.md vor dem Hinzufügen oder Ändern eines Plattform-Adapters. Lies references/ecosystem.md bei der Entscheidung, ob ein bestehender Open-Source-Extraktor wiederverwendet werden soll, anstatt einen neuen zu schreiben.

Guardrails

ShareXtract ist für Inhalte gedacht, die für den Anforderer bereits öffentlich sind. Es handelt sich nicht um ein Anti-Bot-Bypass-Framework. Füge keine Stealth-Mechanismen, CAPTCHA-Lösungen, Credential-Harvesting, Signatur-Umgehungen, Massen-Account-Rotation oder Zugangskontroll-Umgehungen hinzu.

Für instabile First-Party-Endpunkte kennzeichne sie als undokumentiert und halte einen öffentlichen Seiten-Fallback bereit. Bevorzuge Adapter, die mit statischen Testdaten getestet werden können und die fehlschlagen, wenn der Inhalt nicht verifiziert werden kann.

Öffentliche Video-Metadaten von Kuaishou

Für öffentliche Kuaishou-Videos bevorzuge eine aktuelle offizielle v.kuaishou.com- oder kuaishou.com/f/-Share-/Copy-Link-URL. Der native Adapter konsumiert anonymes PC-Seiten-Apollo-SSR aus derselben öffentlichen Redirect-Antwort und exportiert nur Metadaten. Bloße Kurz-Video-URLs können visionVideoDetail auslassen; wenn das passiert, fordere einen frischen offiziellen Share-Link an, anstatt did-Cookies zu erzeugen oder die private GraphQL-Detail-API aufzurufen. Exportiere niemals photoUrl, manifest, adaptive-representation oder temporäre CDN-MP4-URLs aus dem Apollo-State.

Öffentliche Notizen von Xiaohongshu

Für Xiaohongshu-Notizen verwende eine aktuelle offizielle Share-/Copy-Link-URL oder einen offiziellen xhslink-Short-Link. ShareXtract konsumiert einen vorhandenen xsec_token aus dieser öffentlichen URL und liest den First-Party-SSR-Initialzustand; es generiert/erneuert keine Token und implementiert kein X-s/X-t-Request-Signing. Bloße Notiz-URLs ohne aktuelles Token sollten mit dem Hinweis abgelehnt werden, einen frischen offiziellen Share-Link zu besorgen. Exportiere keine temporären Video-/Untertitel-Stream-URLs, die im Notiz-State eingebettet sind.

Öffentliche Video-Metadaten von Douyin

Für direkte öffentliche Douyin-Video-URLs oder v.douyin.com-Short-Links verwende den nativen Metadaten-Adapter über extract(). Er liest die anonyme First-Party-Jingxuan-SSR/VideoObject-Oberfläche mit einer normalen mobilen Browser-Repräsentation. Exportiere keine temporären Wiedergabe-/Download-URLs aus eingebetteten video_model-Daten und füge kein a_bogus, keine Gerätesignaturen, kopierte Cookies oder eingeloggte Sitzungszustände hinzu.

Öffentliche TikTok-Videos

Für direkte öffentliche TikTok-Video-URLs verwende die native dokumentierte oEmbed-Route über den normalen extract()-Router. Für diesen oEmbed-Pfad ist keine TikTok-Benutzerautorisierung oder Zugriffstoken erforderlich. Ersetze keinen authentifizierten Display-API-Zugang durch normale öffentliche Embed-Metadaten.

Öffentliche Weibo-Beiträge

Für öffentliche Weibo-Beitrags-URLs verwende den nativen Adapter über den normalen extract()-Router. Er verwendet die anonyme mobile Weibo-PWA-JSON-Route und fragt die öffentliche extend-Route nur für Beiträge an, die als isLongText markiert sind. Füge keine Login-Cookies oder authentifizierten Sitzungszustände hinzu, wenn die öffentliche PWA-Route nicht verfügbar ist.

Öffentliche Zhihu-Inhalte

Für öffentliche Zhihu-Antworten und Zhuanlan-Artikel verwende die nativen Adapter über den normalen extract()-Router. Der Antwort-Adapter verwendet den anonymen öffentlichen Zhihu-Tardis-SSR-Reader; der Artikel-Adapter bevorzugt öffentlichen eingebetteten Initialzustand mit Tardis-Fallback. Füge kein x-zse, d_c0, kopierte Cookies oder eingeloggten Browser-Zustand hinzu, um eine blockierte Zhihu-API-Route funktionsfähig zu machen.

Adapter-Gesundheit

Bevor du in einem automatisierten Workflow von einer fragilen Plattform-Route abhängig bist, überprüfe die deterministische Gesundheit mit:

python -m sharextract --health

Für explizite Release-/Protokollverifikation verwende --live nur gegen die festgelegten öffentlichen Beispiele im Registry. Verwandle keine beliebigen Ziel-URLs in Gesundheitsprobes. Siehe references/adapter-health.md.

Verwandte Skills