MarkItDown: Office- und PDF-Dokumente per Python nach Markdown konvertieren
Dateien und Office-Dokumente mit Python in Markdown umwandeln.
Auf einen Blick
- Was ist das?
- Ein leichtgewichtiges Python-Werkzeug von Microsoft, das Dateien wie PDF, Word, Excel und Folien in Markdown wandelt, ausgerichtet auf Sprachmodell- und Textanalyse-Pipelines.
- Für wen ist es gedacht?
- MarkItDown eignet sich für LLM-Pipelines, die Office- und PDF-Dokumente in Markdown überführen und dabei Struktur wie Überschriften, Listen und Tabellen bewahren wollen. Wer hochwertige Dokumente zum Lesen durch Menschen oder strukturierte Feldextraktion braucht, sollte Azure Content Understanding oder klassische OCR-Werkzeuge prüfen.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 1 Tag.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Python, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
MarkItDown: Python-Konverter für Markdown-Pipelines
MarkItDown ist laut README ein leichtgewichtiges Python-Werkzeug, das verschiedene Dateitypen nach Markdown konvertiert, ausgerichtet auf den Einsatz mit Sprachmodellen und Textanalyse-Pipelines. Der nächstliegende Vergleich sei textract, mit dem Unterschied, dass MarkItDown Struktur wie Überschriften, Listen, Tabellen und Links in Markdown erhält.
Die Ausgabe ist nach README-Angabe oft durchaus ansehnlich, aber ausdrücklich für Analysewerkzeuge gedacht: Für hochwertige Konvertierung zum menschlichen Lesen eignet sie sich nicht immer. Wer Dokumente für Menschen umwandelt, sollte den Zweck also genau benennen. Das Projekt steht unter der MIT-Lizenz, ist in Python geschrieben und zum Erfassungszeitpunkt in Version v0.1.7 vom 29. Juli 2026 verfügbar.
Unterstützte Formate und der Grund für Markdown
Die Konvertierliste des README ist breit: PDF, PowerPoint, Word, Excel, Bilder mit EXIF-Daten und OCR, Audio mit EXIF und Spracherkennung, HTML, Textformate wie CSV und JSON und XML, ZIP-Dateien über deren Inhalt, YouTube-URLs und E-Books als Epub. Die Begründung für Markdown fällt sachlich aus: Markdown liege nahe an Klartext, brauche wenig Markup, bilde aber Dokumentstruktur ab, und gängige Sprachmodelle bewegten sich damit sicher.
Der Nebeneffekt ist gezielt: Markdown-Konventionen gelten als token-effizient. Wer Fälle aus der gestützten Liste nutzt, erhält damit eine einheitliche Ablageform für verschiedene Eingangstypen, muss aber prüfen, ob die Qualität je Format ausreicht. Die Wiedergabetreue bei komplexen Layouts bleibt ein eigener Testfall, solche Angaben macht das README nicht.
Python 3.10, virtuelle Umgebungen und Installation
Voraussetzung ist Python ab Version 3.10; eine virtuelle Umgebung wird empfohlen. Das README zeigt die klassischen Wege: python -m venv .venv mit source .venv/bin/activate, unter uv uv venv --python=3.12 .venv mit der Erinnerung, Pakete über uv pip install statt pip install einzuspielen, und für Anaconda conda create -n markitdown python=3.12 sowie conda activate markitdown.
Installiert wird mit pip install 'markitdown[all]', was alle optionalen Zusätze aktiviert. Alternativ klont man das Repository und installiert aus dem Quellbaum mit pip install -e 'packages/markitdown[all]'. Wer die Abhängigkeiten kontrollieren will, wählt gezielte Extras statt des Sammelpakets, beschrieben im Abschnitt über optionale Abhängigkeiten.
Kommandozeile und schmale Konvertierfunktionen
Die Kommandozeile ist der schnellste Einstieg. markitdown path-to-file.pdf schreibt das Ergebnis auf die Standardausgabe, mit einer Umleitung landet es in einer Datei, und die Option -o document.md erledigt das direkt. Über die Pipe lässt sich auch die Standardeingabe füttern: cat path-to-file.pdf | markitdown.
Der Programmzugriff läuft über ein MarkItDown-Objekt mit convert-Aufrufen; das README nennt convert_local und convert_stream als Beispiele für gezielte, schmale Konvertierfunktionen. Wer ein Dokument aus einer Url oder aus einer lokalen Datei verarbeitet, wählt die jeweils passende Variante statt eines allgemeinen Aufrufs.
Optionale Abhängigkeiten: pdf, docx, pptx und mehr
Die optionalen Abhängigkeiten bestimmen, welche Formate tatsächlich aktiv sind. Aufgeführt werden Extras für pptx, docx, xlsx, xls für ältere Excel-Dateien, pdf, outlook für Nachrichten, az-doc-intel und az-content-understanding für Azure-Dienste, audio-transcription für WAV und MP3 sowie youtube-transcription für Videotexte. Ein Beispiel aus dem README: pip install 'markitdown[pdf, docx, pptx]' beschränkt die Installation auf genau diese Formate.
Damit bleibt die Basis klein und der Umfang pro Projekt wählbar. Wer viele Dienste braucht, installiert das Extra all; wer nur PDFs verarbeitet, spart sich den Rest. Diese Aufteilung schützt vor unnötig schweren Abhängigkeiten und ist der erste Anlaufpunkt, wenn eine Konvertierung ohne erkennbaren Grund fehlschlägt.
Plugins, OCR-Erweiterung und Azure Content Understanding
Drittanbieter-Plugins sind laut README standardmäßig deaktiviert. markitdown --list-plugins zeigt installierte Erweiterungen, markitdown --use-plugins datei.pdf aktiviert sie für einen Lauf; Hinweise auf verfügbare Plugins sammelt GitHub unter dem Hashtag markitdown-plugin. Als Beispiel dokumentiert das README das Plugin markitdown-ocr, das OCR für PDF, DOCX, PPTX und XLSX über LLM-Vision nachrüstet und dabei die vorhandene llm_client- und llm_model-Konfiguration wiederverwendet; ohne angegebenen Client bleibt die OCR-Route laut README stumm deaktiviert.
Für höhere Qualität verweist das Projekt auf Azure Content Understanding, das Dokumente, Bilder, Audio und Video abdeckt und strukturierte Felder wie Rechnungsbeträge oder Vertragsklauseln als YAML-Frontmatter zieht. Die Installation läuft über die Zusatzabhängigkeit az-content-understanding; für Video existiert laut README keine eingebaute Alternative, und die Cloud-Analyse soll bei gescannten PDFs und komplexen Tabellen bessere Ergebnisse liefern.
Sicherheitsgrenze: Rechte des aktuellen Prozesses
Die Sicherheitsbetrachtung steht im README prominent: MarkItDown arbeitet mit den Rechten des aktuellen Prozesses und erreicht damit alles, was auch open() oder requests.get erreichen würden. In unvertrauten Umgebungen sollen Eingaben bereinigt und die schmalste passende Konvertierfunktion genutzt werden.
Diese Warnung ist keine Formalität, weil Konvertierungs-Pipelines häufig genau auf Dokumenten operieren, die nicht aus eigener Hand stammen. Lizenziert ist das Projekt unter MIT; die Lizenz erlaubt Weiternutzung und Anpassung, beinhaltet aber keine ausdrücklichen oder stillschweigenden Garantien. Wer die Bibliothek in einer Anwendung einsetzt, die fremde Dateien verarbeitet, muss die Eingabepfade entsprechend absichern.
Redaktionelles Fazit
MarkItDown eignet sich für LLM-Pipelines, die Office- und PDF-Dokumente in Markdown überführen und dabei Struktur wie Überschriften, Listen und Tabellen bewahren wollen. Wer hochwertige Dokumente zum Lesen durch Menschen oder strukturierte Feldextraktion braucht, sollte Azure Content Understanding oder klassische OCR-Werkzeuge prüfen. Vor der Übernahme lohnt es, in einer kleinen Umgebung pip install 'markitdown[all]' zu testen und eine PDF mit markitdown datei.pdf -o ausgabe.md zu konvertieren; die MIT-Lizenz erlaubt Anpassung, ohne Garantien zu übernehmen.
Community-Notizen