Skip to main content
MarkItDown uses optional dependency groups to minimize installation size and avoid unnecessary dependencies. Install only what you need for your specific use case.

Installation Groups

MarkItDown defines the following optional dependency groups in pyproject.toml:

all - Complete Installation

Installs all optional dependencies for maximum file format support. Includes:
  • python-pptx - PowerPoint support
  • mammoth~=1.11.0 - Word document support
  • pandas - Excel support
  • openpyxl - Excel (.xlsx) support
  • xlrd - Excel (.xls) support
  • lxml - Enhanced XML/HTML parsing
  • pdfminer.six>=20251230 - PDF text extraction
  • pdfplumber>=0.11.9 - Advanced PDF parsing
  • olefile - Outlook MSG support
  • pydub - Audio processing
  • SpeechRecognition - Audio transcription
  • youtube-transcript-api~=1.0.0 - YouTube transcript support
  • azure-ai-documentintelligence - Azure Document Intelligence
  • azure-identity - Azure authentication
Recommended for most users to ensure all file types are supported.

pptx - PowerPoint Support

Includes:
  • python-pptx
Supports:
  • .pptx files (PowerPoint presentations)

docx - Word Document Support

Includes:
  • mammoth~=1.11.0
  • lxml
Supports:
  • .docx files (Word documents)

xlsx - Excel XLSX Support

Includes:
  • pandas
  • openpyxl
Supports:
  • .xlsx files (Excel spreadsheets, modern format)

xls - Excel XLS Support

Includes:
  • pandas
  • xlrd
Supports:
  • .xls files (Excel spreadsheets, legacy format)

pdf - PDF Support

Includes:
  • pdfminer.six>=20251230
  • pdfplumber>=0.11.9
Supports:
  • .pdf files (PDF documents)
PDF support uses both pdfminer.six and pdfplumber for robust text extraction and table parsing.

outlook - Outlook MSG Support

Includes:
  • olefile
Supports:
  • .msg files (Outlook messages)

audio-transcription - Audio Support

Includes:
  • pydub
  • SpeechRecognition
Supports:
  • Audio file transcription
  • Requires FFmpeg installed on system
Audio transcription requires FFmpeg to be installed separately:

youtube-transcription - YouTube Support

Includes:
  • youtube-transcript-api~=1.0.0
Supports:
  • YouTube video transcript extraction

az-doc-intel - Azure Document Intelligence

Includes:
  • azure-ai-documentintelligence
  • azure-identity
Supports:
  • Cloud-based document conversion via Azure Document Intelligence service
  • Enhanced OCR and layout analysis
Requires an Azure Document Intelligence endpoint. See the Azure Document Intelligence guide for setup.

Core Dependencies

These dependencies are always installed:
  • beautifulsoup4 - HTML parsing
  • requests - HTTP requests
  • markdownify - HTML to Markdown conversion
  • magika~=0.6.1 - File type detection
  • charset-normalizer - Character encoding detection
  • defusedxml - Safe XML parsing

Combining Dependency Groups

Install multiple groups by combining them:

Use Case Examples

Minimal Installation

For basic text, HTML, CSV, and simple formats:
Supports without optional dependencies:
  • Plain text files
  • HTML files
  • CSV files
  • RSS feeds
  • Jupyter notebooks (.ipynb)
  • Wikipedia pages
  • Bing search results
  • YouTube transcripts (if available)

Document Processing Server

For a server processing office documents and PDFs:

Web Scraping Application

Minimal installation is sufficient:

Media Processing Pipeline

For audio and image processing:

Cloud Document Service

Using Azure Document Intelligence:

Development Environment

Install everything for testing:

Checking Installed Dependencies

Verify which dependencies are installed:

Error Messages

When a required dependency is missing, MarkItDown will raise a MissingDependencyException:

Upgrade Existing Installation

Add optional dependencies to an existing installation:

Dependencies in Docker

The official Docker image includes all dependencies:
For a minimal Docker image, customize the Dockerfile:

Requirements Files

For reproducible environments:
requirements.txt
Or specify exact versions:
requirements.txt

System Dependencies

Some features require system-level packages:

ExifTool (for image metadata)

FFmpeg (for audio processing)

Troubleshooting

Version Conflicts

If you encounter version conflicts:

Installation Failures

Some packages require build tools:

Check Installed Version