====== MarkItDown ======
[[https://github.com/microsoft/markitdown|MarkItDown]] je lehký Python nástroj od Microsoftu pro převod různých formátů souborů do Markdownu. Primárně je určen pro přípravu obsahu pro LLM a textové analytické pipeline.
Na rozdíl od nástrojů jako [[software:dokumentace:pandoc|Pandoc]] se MarkItDown zaměřuje na zachování struktury dokumentu (nadpisy, tabulky, seznamy, odkazy) spíše než na vizuální věrnost výstupu.
===== Podporované formáty =====
* PDF
* PowerPoint (.pptx)
* Word (.docx)
* Excel (.xlsx, .xls)
* Obrázky (EXIF metadata, OCR)
* Audio (EXIF metadata, přepis řeči)
* HTML
* Textové formáty (CSV, JSON, XML)
* ZIP (iteruje obsah)
* YouTube URL (přepis titulků)
* EPub
* a další
===== Instalace =====
Požadavky: Python 3.10 nebo vyšší.
==== Ze zdrojového kódu (pro vývoj nebo úpravy) ====
# 1. Klonovat repozitář
git clone https://github.com/microsoft/markitdown.git markitdown
# 2. Vytvořit virtuální prostředí uvnitř složky projektu
python3 -m venv markitdown/.venv
# 3. Nainstalovat závislosti přes venv pip
markitdown/.venv/bin/pip install -e 'markitdown/packages/markitdown[all]'
Přepínač ''-e'' (editable install) zajistí, že změny ve zdrojovém kódu se projeví okamžitě bez reinstalace.
Přípona ''[all]'' nainstaluje všechny volitelné závislosti. Lze instalovat jen vybrané formáty:
pip install 'markitdown[pdf,docx,pptx]'
^ Skupina ^ Formát ^
| ''[pptx]'' | PowerPoint |
| ''[docx]'' | Word |
| ''[xlsx]'' | Excel |
| ''[xls]'' | Starší Excel |
| ''[pdf]'' | PDF |
| ''[outlook]'' | Outlook zprávy |
| ''[audio-transcription]'' | WAV a MP3 |
| ''[youtube-transcription]'' | YouTube titulky |
| ''[az-doc-intel]'' | Azure Document Intelligence |
===== Použití =====
==== Příkazová řádka ====
# Základní konverze
markitdown dokument.pdf > dokument.md
# Se zadáním výstupního souboru
markitdown dokument.pdf -o dokument.md
# Pipe
cat dokument.pdf | markitdown
markitdown/.venv/bin/markitdown soubor.pdf > soubor.md
==== Python API ====
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("soubor.xlsx")
print(result.text_content)
S popisem obrázků přes LLM (pouze pro PPTX a obrázky):
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("prezentace.pptx")
print(result.text_content)
==== Azure Document Intelligence ====
markitdown dokument.pdf -o dokument.md -d -e ""
==== MCP server ====
MarkItDown nabízí také MCP server pro integraci s LLM aplikacemi (Claude Desktop apod.) — viz balíček [[https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp|markitdown-mcp]].
===== Viz také =====
* [[software:dokumentace:pandoc|Pandoc]] — univerzální konvertor dokumentů
* [[ai:zapisy-a-workflow:workflow:prevod-dokumentu-na-markdown|Marker]] — převod dokumentů na Markdown s vysokou přesností (OCR)