Communitygithub.com

wuaishare/sharextract

Extractor de contenido público basado en protocolos, orientado a agentes de IA, que permite extraer publicaciones de redes sociales, chats, medios y páginas web.

¿Qué es sharextract?

ShareXtract es una habilidad diseñada para agentes de IA que necesitan extraer contenido público compartido de manera fiable y eficiente. Su principal ventaja es que selecciona automáticamente el método de extracción de mayor fidelidad y menor coste disponible, priorizando APIs documentadas o estándares abiertos como RSS/Atom. Soporta múltiples plataformas como Kuaishou, Xiaohongshu, Douyin, TikTok, Weibo y Zhihu, y ofrece salidas en JSON normalizado o Markdown legible. El flujo de trabajo es simple: tomar una URL pública, ejecutar un comando Python y analizar los metadatos resultantes, que incluyen origen, confianza, advertencias y contenido estructurado. Incorpora estrictas salvaguardas: nunca intenta evadir inicios de sesión, CAPTCHAs, muros de pago o controles de acceso; solo trabaja con contenido ya público. Para plataformas frágiles, permite verificar la salud de los adaptadores mediante un comando específico antes de usarlos en flujos automatizados.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add wuaishare/sharextract

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace sharextract?

Extrae contenido público compartido utilizando el método de mayor fidelidad y menor coste disponible, preservando cómo se obtuvo el contenido.

Flujo de trabajo

  1. Trata la URL proporcionada como entrada exclusivamente pública. No reutilices cookies del navegador, tokens de sesión, credenciales ni datos privados de conectores a menos que el usuario solicite explícitamente un flujo autenticado y la plataforma lo permita.
  2. Ejecuta: python -m sharextract "URL" --format json
  3. Prefiere el resultado con la procedencia más sólida:
    • API pública documentada, estándares de sindicación abierta (RSS/Atom) o oEmbed;
    • Datos públicos JSON/hydration de primera parte;
    • JSON-LD/OpenGraph/HTML estructurado;
    • Extractor especializado de contenido público como yt-dlp;
    • HTML estático legible;
    • Renderizado en navegador solo cuando una página pública realmente requiera JavaScript.
  4. Inspecciona extraction_method, confidence, warnings, canonical_url y metadata antes de usar el resultado. Para fuentes, usa metadata.feed.entries; para transcripciones, metadata.transcript.cues; para páginas normales, metadata.syndication_feeds y metadata.subtitle_tracks pueden exponer recursos públicos declarados.
  5. Preserva el significado original y las referencias multimedia. No inventes silenciosamente texto, autoría, marcas de tiempo o metadatos de la plataforma que falten.
  6. Si una ruta especializada falla, permite que el enrutador recurra al método de respaldo e informe la ruta fallida en warnings.
  7. Detente en lugar de eludir muros de inicio de sesión, CAPTCHAs, muros de pago, desafíos WAF, enlaces privados y otros controles de acceso.

Comandos

JSON normalizado por defecto:

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

Markdown legible:

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

Extracción web general forzada:

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

Solo metadatos multimedia:

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

Dependencias opcionales de mayor calidad web/multimedia:

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

Superficies de servicio opcionales:

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

Usa las capas de servicio solo como transportes alrededor del mismo contrato de extracción de contenido público; la lógica específica de la plataforma pertenece a los adaptadores, no a los manejadores MCP/HTTP.

Contrato de salida

El resultado JSON contiene source_url, canonical_url, platform, kind, extraction_method, confidence, title, author, text, markdown, html opcional, mensajes normalizados, referencias multimedia, metadata, warnings y retrieved_at.

Lee references/platform-matrix.md al decidir cómo manejar una plataforma. Lee references/adding-adapters.md antes de añadir o modificar un adaptador de plataforma. Lee references/ecosystem.md al decidir si reutilizar un extractor open-source existente en lugar de escribir uno nuevo.

Salvaguardas

ShareXtract está pensado para contenido que ya es público para el solicitante. No es un marco de evasión anti-bots. No añadas sigilo, resolución de CAPTCHAs, recolección de credenciales, elusión de firmas, rotación masiva de cuentas ni bypasses de control de acceso.

Para endpoints inestables de primera parte, etiquétalos como no documentados y mantén un respaldo de página pública. Prefiere adaptadores que puedan probarse con fixtures estáticos y que fallen de manera segura cuando el contenido no se pueda verificar.

Metadatos de videos públicos de Kuaishou

Para videos públicos de Kuaishou, prefiere una URL actual oficial de v.kuaishou.com o kuaishou.com/f/ Compartir / Copiar enlace. El adaptador nativo consume el Apollo SSR de página anónima de PC proveniente de la misma respuesta de redirección pública y exporta solo metadatos. Las URLs de video corto sin adornos pueden omitir visionVideoDetail; cuando esto suceda, solicita un nuevo enlace de compartir oficial en lugar de crear cookies did o llamar a la API privada GraphQL de detalle. Nunca exportes photoUrl, manifest, adaptive-representation ni URLs temporales de CDN MP4 del estado Apollo.

Notas públicas de Xiaohongshu

Para notas de Xiaohongshu, usa una URL actual oficial de Compartir / Copiar enlace o un enlace corto oficial de xhslink. ShareXtract consume un xsec_token existente de esa URL pública y lee el estado inicial SSR de primera parte; no genera/renueva tokens ni implementa el firmado de peticiones X-s/X-t. Las URLs de nota sin un token actual deben rechazarse con la indicación de obtener un nuevo enlace de compartir oficial. No exportes URLs de transmisión de video/subtítulos temporales incrustadas en el estado de la nota.

Metadatos de videos públicos de Douyin

Para URLs directas de videos públicos de Douyin o enlaces cortos de v.douyin.com, usa el adaptador nativo solo de metadatos a través de extract(). Lee la superficie anónima de Jingxuan SSR/VideoObject de primera parte usando una representación normal de navegador móvil. No exportes URLs de reproducción/descarga temporales de los datos incrustados de video_model, y no añadas a_bogus, firmas de dispositivo, cookies copiadas ni estado de sesión iniciada.

Videos públicos de TikTok

Para URLs directas de videos públicos de TikTok, usa la ruta oEmbed nativa documentada a través del enrutador normal extract(). No se requiere autorización de usuario de TikTok ni token de acceso para esta ruta oEmbed. No sustituyas el acceso autenticado a la API Display por metadatos de incrustación pública ordinarios.

Estados públicos de Weibo

Para URLs de estados públicos de Weibo, usa el adaptador nativo a través del enrutador normal extract(). Utiliza la ruta JSON anónima de PWA móvil de Weibo y solicita la ruta pública extendida solo para estados marcados como isLongText. No añadas cookies de inicio de sesión ni estado de sesión autenticada cuando la ruta PWA pública no esté disponible.

Contenido público de Zhihu

Para respuestas públicas de Zhihu y artículos de Zhuanlan, usa los adaptadores nativos a través del enrutador normal extract(). El adaptador de respuestas utiliza el lector público Tardis SSR de Zhihu; el adaptador de artículos prefiere el estado inicial público incrustado con respaldo de Tardis. No añadas x-zse, d_c0, cookies copiadas ni estado de navegador iniciado para hacer funcionar una ruta bloqueada de la API de Zhihu.

Salud del adaptador

Antes de depender de una ruta de plataforma frágil en un flujo de trabajo automatizado, verifica la salud determinista con:

python -m sharextract --health

Para verificación explícita de lanzamiento/protocolo, usa --live solo contra las muestras públicas fijas del registro. No conviertas URLs de destino arbitrarias en sondas de salud. Consulta references/adapter-health.md.

Skills relacionados