Conversor de Artículos de WeChat a Markdown
Qué hace esta herramienta
Convierte artículos de cuentas públicas de WeChat en archivos Markdown limpios con:
- YAML frontmatter (título, autor, fecha, URL de origen)
- Imágenes descargadas localmente
- Bloques de código preservados con detección de lenguaje
- Extracción de referencias de audio/video
- Formato limpio (sin ruido de la interfaz de WeChat)
Prerrequisitos
- Python 3.10+
- Instalar dependencias:
pip install -r requirements.txt - El navegador Camoufox se descargará automáticamente en la primera ejecución
Uso
CLI (artículo individual)
python main.py "https://mp.weixin.qq.com/s/ARTICLE_ID"
CLI (lote desde archivo)
python main.py -f urls.txt -o ./output -v
Opciones de CLI
| Flag | Descripción |
|---|---|
-f FILE | Archivo de texto con URLs (una por línea) |
-o DIR | Directorio de salida (predeterminado: ./output) |
-c N | Concurrencia de descarga de imágenes (predeterminado: 5) |
--no-images | Omitir descarga de imágenes, mantener URLs remotas |
--no-headless | Mostrar el navegador (para resolver CAPTCHAs) |
--force | Sobrescribir salida existente |
--no-frontmatter | Usar metadatos en blockquote en lugar de YAML |
-v | Registro detallado/de depuración |
Servidor MCP
Ejecutar como servidor MCP para integración con herramientas de IA:
python mcp_server.py
Expone dos herramientas:
convert_article(url, output_dir, download_images, concurrency, use_frontmatter)— Convierte un artículo individualbatch_convert(urls, output_dir, download_images, concurrency)— Convierte múltiples artículos
Configuración MCP (para claude_desktop_config.json o similar)
{
"mcpServers": {
"wechat-to-md": {
"command": "python",
"args": ["mcp_server.py"],
"cwd": "<ruta-a-este-proyecto>"
}
}
}
Estructura de Salida
output/
<título-del-artículo>/
<título-del-artículo>.md # Archivo Markdown con YAML frontmatter
images/
img_001.png
img_002.jpg
...
Problemas Comunes
- Página CAPTCHA/verificación: Ejecutar con
--no-headlesspara resolver manualmente el CAPTCHA en la ventana del navegador y luego reintentar. - Contenido vacío: WeChat puede limitar la frecuencia de solicitudes. Espera unos minutos e intenta de nuevo.
- Fallos en descarga de imágenes: Las imágenes fallidas mantienen sus URLs remotas en el Markdown. Vuelve a ejecutar con
--forcepara reintentar.
Limitaciones
- Solo admite artículos de
mp.weixin.qq.com - Requiere una conexión a internet funcional y la capacidad de ejecutar un navegador headless
- WeChat puede bloquear el acceso automatizado; Camoufox ayuda a evadir la detección pero no está garantizado