WeChat Article to Markdown Converter
이 도구의 기능
WeChat 공개 계정(微信公众号) 게시글을 깨끗한 마크다운 파일로 변환합니다:
- YAML frontmatter (제목, 저자, 날짜, 출처 URL)
- 로컬에 다운로드된 이미지
- 언어 감지된 코드 블록 유지
- 오디오/비디오 참조 추출
- 깔끔한 포맷팅 (WeChat UI 잡음 제거)
필수 조건
- Python 3.10+
- 의존성 설치:
pip install -r requirements.txt - Camoufox 브라우저는 최초 실행 시 자동 다운로드됩니다.
사용법
CLI (단일 게시글)
python main.py "https://mp.weixin.qq.com/s/ARTICLE_ID"
CLI (파일로 일괄 변환)
python main.py -f urls.txt -o ./output -v
CLI 옵션
| 플래그 | 설명 |
|---|---|
-f FILE | URL이 한 줄에 하나씩 포함된 텍스트 파일 |
-o DIR | 출력 디렉터리 (기본값: ./output) |
-c N | 이미지 다운로드 동시성 (기본값: 5) |
--no-images | 이미지 다운로드 생략, 원격 URL 유지 |
--no-headless | 브라우저 표시 (CAPTCHA 해결용) |
--force | 기존 출력 덮어쓰기 |
--no-frontmatter | YAML 대신 blockquote 메타데이터 사용 |
-v | 상세/디버그 로깅 |
MCP 서버
AI 도구 통합을 위해 MCP 서버로 실행:
python mcp_server.py
두 가지 도구를 노출합니다:
convert_article(url, output_dir, download_images, concurrency, use_frontmatter)— 단일 게시글 변환batch_convert(urls, output_dir, download_images, concurrency)— 여러 게시글 변환
MCP 설정 (claude_desktop_config.json 등)
{
"mcpServers": {
"wechat-to-md": {
"command": "python",
"args": ["mcp_server.py"],
"cwd": "<path-to-this-project>"
}
}
}
출력 구조
output/
<article-title>/
<article-title>.md # YAML frontmatter가 포함된 마크다운 파일
images/
img_001.png
img_002.jpg
...
일반적인 문제
- CAPTCHA/인증 페이지:
--no-headless로 실행하여 브라우저 창에서 수동으로 CAPTCHA를 해결한 후 다시 시도하세요. - 빈 내용: WeChat이 요청 속도를 제한할 수 있습니다. 몇 분 기다린 후 다시 시도하세요.
- 이미지 다운로드 실패: 실패한 이미지는 마크다운에서 원격 URL을 유지합니다.
--force옵션으로 다시 실행하여 재시도하세요.
제한 사항
mp.weixin.qq.com의 게시글만 지원합니다.- 작동하는 인터넷 연결과 헤드리스 브라우저 실행이 가능해야 합니다.
- WeChat이 자동 접근을 차단할 수 있습니다. Camoufox는 탐지를 우회하는 데 도움이 되지만 보장되지는 않습니다.