| name | markitdown |
| description | Convert various file formats to Markdown for LLM consumption. Supports PDF, DOCX, PPTX, XLSX, images, audio, HTML, CSV, JSON, XML, ZIP, EPUB, YouTube URLs, and more via a plugin-based converter architecture. |
| version | 0.2.0 |
| author | Adam Fourney (Microsoft AutoGen Team) |
| homepage | https://github.com/microsoft/markitdown |
| stars | 138779 |
| tags | ["herramientas","PDF","markdown","conversion","microsoft","autogen","trending-2026-06-03"] |
| fecha_actualizacion | 2026-06-03T00:00:00.000Z |
markitdown
Lightweight Python utility for converting various files to Markdown for LLMs and text-analysis pipelines. Built by Microsoft's AutoGen team. 138k⭐.
¿Qué hace?
MarkItDown convierte archivos de múltiples formatos a Markdown preservando la estructura del documento (encabezados, listas, tablas, enlaces). Optimizado para consumo por LLMs — no para legibilidad humana — lo que lo hace token-eficiente manteniendo estructura semántica.
Comparable a textract pero enfocado en Markdown.
Formatos soportados
| Categoría | Formatos |
|---|
| Documentos | PDF, PowerPoint, Word, Excel, EPUB |
| Imágenes | EXIF metadata + OCR |
| Audio | EXIF metadata + transcripción de voz |
| Web | HTML, YouTube URLs |
| Datos | CSV, JSON, XML, ZIP (iterate contenidos) |
| Texto | Text-based formats |
Instalación
pip install 'markitdown[all]'
pip install markitdown
pip install 'markitdown[pdf, docx, pptx, xlsx, audio-transcription, youtube-transcription]'
Requisitos: Python 3.10+
Core dependencies: beautifulsoup4, requests, markdownify, magika (MIME detection), charset-normalizer, defusedxml
Uso básico
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("document.pdf")
print(result.markdown)
print(result.title)
result = md.convert("https://example.com/file.pdf")
result = md.convert_stream(binary_data, content_type="application/pdf")
result = md.convert_response(response)
markitdown path-to-file.pdf > output.md
cat file.pdf | markitdown
Casos de uso
- RAG pipelines — convertir documentos subidos (PDF, DOCX, PPTX, imágenes) a Markdown antes de embedding
- LLM context building — preparar colecciones multi-formato para APIs de chat/completión
- Content extraction — bulk conversion de archivos a formato texto uniforme para análisis
- Plugin extensibility — registrar conversores custom vía
markitdown.plugin entry points
- Integración con agents — markitdown es parte del ecosistema AutoGen de Microsoft
Arquitectura
- Plugin-based converters: Cada formato tiene su
DocumentConverter subclass con accepts() y convert()
- MIME detection:
magika (detector ML de Google) + mimetypes para detección en capas
- Priority system: Converters ordenados por prioridad; formatos más específicos ganan
- Azure integrations: Azure Document Intelligence y Azure Content Understanding para extracción de alta calidad
Seguridad
⚠️ MarkItDown realiza I/O con los privilegios del proceso actual. Sanitiza inputs en entornos no confiables y usa la API más narrow (convert_local(), convert_stream(), convert_response()) para tu caso de uso.
Comparativa con liteparse
| Feature | markitdown | liteparse |
|---|
| Lenguaje | Python | Rust (con bindings Python/TS/WASM) |
| Velocidad | Bueno | ⚡ Más rápido (Rust core) |
| Bounding boxes | ❌ | ✅ |
| OCR integrado | ✅ (vía extras) | ✅ (Tesseract + HTTP servers) |
| Screenshot pages | ❌ | ✅ |
| Soporte formatos | + amplio | PDF/DOCX/XLSX/PPTX/IMG |
| Multi-plataforma | Python | Rust + Python + TS + WASM |
| Uso ideal | RAG, LLM context | Document pipelines, spatial parsing |
Recomendación: Usar markitdown para RAG/LLM context (más formatos, más simple). Usar liteparse para pipelines de documentos que necesitan bounding boxes, OCR avanzado o screenshots.
Fecha de descubrimiento
2026-06-02 — Trending diario Y semanal en GitHub. 138.7k⭐, creado 2024-11-13. Microsoft AutoGen Team.