MarkItDown en Windows — verificar y usar (solo PDF, Word, Excel)

Qué es en 1 línea

MarkItDown convierte archivos (PDF, Word, Excel, etc.) a Markdown limpio, ideal para meterlos a Obsidian o pasarlos a un LLM.

Qué tienes ya hecho

  • Entorno virtual creado en: D:\z\dev\markitdown\.venv ✅
  • Instalaste solo los extras de pdf, docx, xlsx ✅ (suficiente para tu caso)

1. Activar el entorno (¡paso obligatorio en Windows!)

La doc oficial muestra source .venv/bin/activate, pero eso es Linux/Mac. En Windows es distinto. Abre la terminal dentro de la carpeta del proyecto:

cd D:\z\dev\markitdown

Y luego activa según tu terminal:

# Opción A — CMD (el más seguro, no da problemas de permisos)
.venv\Scripts\activate.bat
 
# Opción B — PowerShell
.venv\Scripts\Activate.ps1

Si PowerShell te tira error de "ejecución de scripts deshabilitada"

Es normal en Windows. Ejecuta esto una sola vez como administrador y listo:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

O simplemente usa CMD (opción A) y te olvidas del tema.

Sabrás que está activo porque al inicio de la línea aparecerá (.venv).


2. Verificar que MarkItDown está instalado

Con el (.venv) activo, cualquiera de estos sirve:

pip show markitdown

Te muestra la versión y la ruta. Si sale info → está instalado. ✅

markitdown --help

Si te lista las opciones del comando → el ejecutable funciona. ✅

Verificación desde Python

python -c "from markitdown import MarkItDown; print('OK')"

Si imprime OK, la librería importa sin drama.


3. Verificar los 3 extras que instalaste (pdf, docx, xlsx)

pip show no lista los “extras”, así que miramos los paquetes que traen cada formato. Con el venv activo:

pip list

Busca en la lista estos nombres (si aparecen, ese formato funciona):

FormatoPaquete que debes ver en pip list
PDFpdfminer.six / pypdf / pdfplumber
Word (.docx)python-docx
Excel (.xlsx)openpyxl

Filtro rápido en Windows

pip list | findstr "docx openpyxl pdf"

Si salen los 3 → tienes PDF + Word + Excel cubiertos. 🎯

Si algún día te falta uno, lo agregas sin reinstalar todo:

pip install "markitdown[pdf,docx,xlsx]"

Límite de tu instalación actual

Como no instalaste [all], formatos como PowerPoint (.pptx), audio o YouTube van a fallar. Es normal, no es un bug. Cuando los necesites, instalas su extra.


4. Usarlo por terminal (lo más rápido)

Convierte un archivo y guarda el .md:

markitdown "D:\ruta\a\mi\archivo.pdf" -o salida.md

Ejemplos por formato:

markitdown informe.pdf      -o informe.md
markitdown contrato.docx    -o contrato.md
markitdown ventas.xlsx      -o ventas.md

Trucos útiles:

# Ver el resultado en pantalla sin guardar archivo
markitdown informe.pdf
 
# Leer desde tubería (pipe)
type informe.pdf | markitdown

Rutas con espacios en Windows

Ponlas siempre entre comillas dobles "...", si no, se rompe el comando.


5. Usarlo desde Python (para automatizar)

Crea un archivo, por ejemplo convertir.py, dentro de D:\z\dev\markitdown:

from markitdown import MarkItDown
 
md = MarkItDown()
 
# Cambia esto por tu archivo real
resultado = md.convert("informe.pdf")
 
print(resultado.text_content)          # lo muestra en pantalla
 
# Y/o lo guarda a un .md
with open("informe.md", "w", encoding="utf-8") as f:
    f.write(resultado.text_content)

Lo corres con el venv activo:

python convertir.py

Convertir varios archivos de una (batch)

from markitdown import MarkItDown
import glob, os
 
md = MarkItDown()
for archivo in glob.glob("entradas/*.pdf"):   # carpeta con tus PDFs
    nombre = os.path.splitext(os.path.basename(archivo))[0]
    texto = md.convert(archivo).text_content
    with open(f"salidas/{nombre}.md", "w", encoding="utf-8") as f:
        f.write(texto)
    print("listo:", nombre)

Pones tus PDFs en entradas/ y te escupe todos los .md en salidas/. 💪


6. Flujo directo a Obsidian (tu caso de uso real)

El .md que genera MarkItDown ya es compatible con Obsidian, no hay que tocar nada. Flujo express:

  1. Convierte: markitdown "mi-doc.pdf" -o "D:\mi-vault\Inbox\mi-doc.md" (apunta la salida directo a tu vault, carpeta tipo Inbox).
  2. Abres Obsidian → el archivo ya aparece.
  3. (Opcional) Le agregas al inicio tus tags / frontmatter y a tu MOC.

Idea pro para tu chamba remota

Este flujo = “te paso este PDF/Excel a nota editable en 1 comando”. Es justo el tipo de automatización que puedes ofrecer como freelance (procesar documentos, armar bases de conocimiento, alimentar LLMs). Guárdate esta nota como portafolio. 🚀


7. Errores típicos y su arreglo

SíntomaCausaSolución
'markitdown' no se reconoce...No activaste el venvcd D:\z\dev\markitdown y .venv\Scripts\activate.bat
ModuleNotFoundError al importarEstás usando el Python del sistema, no el del venvActiva el venv antes de correr Python
Falla con .pptx / audio / YouTubeNo instalaste ese extrapip install "markitdown[all]" o el extra puntual
Texto del PDF sale desordenadoEl PDF es escaneado (imagen)Necesita OCR: pip install markitdown-ocr + un llm_client
Caracteres raros / tildes malArchivo guardado sin UTF-8Guarda el .md con encoding="utf-8" (ya está en el script de arriba)

⚡ Receta express de 30 segundos (copia-pega)

cd D:\z\dev\markitdown
.venv\Scripts\activate.bat
pip show markitdown
markitdown "TU_ARCHIVO.pdf" -o "TU_ARCHIVO.md"

Si pip show te da versión y el .md se genera → todo verde, rey. ✅


Resumen rápido fuera de la nota (para ti, Alex)

  • Tu instalación está bien. La carpeta .venv de la foto lo confirma.
  • Verificar: activa el venv y corre pip show markitdown + markitdown --help.
  • Confirmar los 3 extras: pip list | findstr "docx openpyxl pdf".
  • Usar: markitdown archivo.pdf -o salida.md (con el venv activado).
  • En Windows el activate es .venv\Scripts\activate.bat, no el source .../bin/activate de la doc.
  • Para Obsidian: apunta la salida -o directo a una carpeta de tu vault y ya aparece como nota.

Cuando quieras, te armo el script .bat de doble clic que convierte un archivo sin que tengas que activar el venv a mano cada vez — así lo usas como herramienta del día a día. ¿Te lo preparo? 🙂