WeChat Article to Markdown Converter
このツールの機能
WeChatの公開アカウント記事をクリーンなMarkdownファイルに変換します。
- YAMLフロントマター(タイトル、作者、日付、ソース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が1行ずつ書かれたテキストファイル |
-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
2つのツールを公開:
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": "<this-projectへのパス>"
}
}
}
出力構造
output/
<article-title>/
<article-title>.md # YAMLフロントマター付きMarkdownファイル
images/
img_001.png
img_002.jpg
...
よくある問題
- CAPTCHA/検証ページ:
--no-headlessを使用してブラウザを表示し、手動でCAPTCHAを解決してから再試行してください。 - 空のコンテンツ: WeChatがリクエストをレート制限している可能性があります。数分待ってから再試行してください。
- 画像のダウンロード失敗: 失敗した画像はMarkdown内でリモートURLのまま残ります。
--forceを指定して再実行すると再試行できます。
制限事項
mp.weixin.qq.comの記事のみサポート- 動作するインターネット接続とヘッドレスブラウザの実行環境が必要
- WeChatが自動アクセスをブロックする可能性があります。Camoufoxは検出を回避するのに役立ちますが、保証はされません。