sharextract은(는) 무엇을 하나요?
가장 높은 충실도와 저렴한 방법으로 공유된 공개 콘텐츠를 추출하고, 콘텐츠 획득 방식을 보존합니다.
워크플로우
- 제공된 URL은 공개 입력으로만 취급합니다. 사용자가 명시적으로 인증된 워크플로우를 요청하고 플랫폼이 허용하지 않는 한, 브라우저 쿠키, 세션 토큰, 자격 증명 또는 개인 커넥터 데이터를 재사용하지 마십시오.
- 실행:
python -m sharextract "URL" --format json - 다음 중 가장 강력한 출처를 가진 결과를 선호합니다:
- 문서화된 공개 API, 개방형 신디케이션 표준 (RSS/Atom) 또는 oEmbed;
- 자사 공개 JSON/수화(hydration) 데이터;
- JSON-LD/OpenGraph/구조화된 HTML;
- yt-dlp와 같은 특화된 공개 콘텐츠 추출기;
- 읽기 가능한 정적 HTML;
- 공개 페이지가 진정으로 JavaScript를 필요로 하는 경우에만 브라우저 렌더링.
- 결과를 다운스트림에서 사용하기 전에
extraction_method,confidence,warnings,canonical_url,metadata를 검사하십시오. 피드의 경우metadata.feed.entries를 사용하고, 트랜스크립트의 경우metadata.transcript.cues를 사용하며, 일반 페이지의 경우metadata.syndication_feeds및metadata.subtitle_tracks에 선언된 공개 후속 리소스가 노출될 수 있습니다. - 원래 의미와 미디어 참조를 보존하십시오. 누락된 텍스트, 저자, 타임스탬프 또는 플랫폼 메타데이터를 조용히 생성하지 마십시오.
- 특화된 경로가 실패하면 라우터가 폴백을 허용하고
warnings에서 실패한 경로를 보고하도록 하십시오. - 로그인 장벽, CAPTCHA, 페이월, WAF 챌린지, 개인 링크 또는 기타 액세스 제어를 우회하지 말고 중단하십시오.
명령어
기본 정규화된 JSON:
python -m sharextract "https://example.com/share/..." --format json
읽기 쉬운 마크다운:
python -m sharextract "https://example.com/article" --format markdown
일반 웹 추출 강제:
python -m sharextract "https://example.com/article" --strategy web
미디어 메타데이터만:
python -m sharextract "https://www.youtube.com/watch?v=..." --strategy media
선택적 고품질 웹/미디어 종속성:
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, 정규화된 메시지, 미디어 참조, 메타데이터, 경고, 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 쿠키를 생성하거나 비공개 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, 장치 서명, 복사된 쿠키 또는 로그인된 세션 상태를 추가하지 마십시오.
TikTok 공개 비디오
직접 공개 TikTok 비디오 URL의 경우 일반 extract() 라우터를 통해 네이티브 문서화된 oEmbed 경로를 사용하십시오. 이 oEmbed 경로에는 TikTok 사용자 인증 또는 액세스 토큰이 필요하지 않습니다. 일반 공개 임베드 메타데이터를 위해 인증된 Display API 액세스를 대체하지 마십시오.
Weibo 공개 상태
공개 Weibo 상태 URL의 경우 일반 extract() 라우터를 통해 네이티브 어댑터를 사용하십시오. Weibo의 익명 모바일 PWA JSON 경로를 사용하며 isLongText로 표시된 상태에 대해서만 공개 extend 경로를 요청합니다. 공개 PWA 경로를 사용할 수 없을 때 로그인 쿠키 또는 인증된 세션 상태를 추가하지 마십시오.
Zhihu 공개 콘텐츠
Zhihu 공개 답변 및 Zhuanlan 기사의 경우 일반 extract() 라우터를 통해 네이티브 어댑터를 사용하십시오. 답변 어댑터는 Zhihu의 익명 공개 Tardis SSR 리더를 사용합니다. 기사 어댑터는 Tardis 폴백과 함께 공개 포함된 초기 상태를 선호합니다. 차단된 Zhihu API 경로를 작동시키기 위해 x-zse, d_c0, 복사된 쿠키 또는 로그인된 브라우저 상태를 추가하지 마십시오.
어댑터 상태
자동화된 워크플로우에서 취약한 플랫폼 경로에 의존하기 전에 다음을 사용하여 결정론적 상태를 검사하십시오:
python -m sharextract --health
명시적 릴리스/프로토콜 확인을 위해서는 레지스트리의 고정 공개 샘플에 대해서만 --live를 사용하십시오. 임의의 대상 URL을 상태 프로브로 전환하지 마십시오. references/adapter-health.md를 참조하십시오.