PDF、Word、PowerPointを一気にMarkdown変換!AIとの連携がスムーズになるファイル変換ツール — markitdown

microsoft/markitdownPython89.9k

MarkItDownは、PDF、Word、Excel、PowerPoint、画像、音声、HTMLなど、さまざまなファイル形式をMarkdown(シンプルな書式付きテキスト)に変換するPython製のツールです。変換後のMarkdownは、ChatGPTのようなAI(大規模言語モデル)にそのまま読み込ませやすい形式になっており、AIを使った文書分析や要約に最適です。コマンド1行で変換でき、Pythonのプログラムに組み込んで使うこともできます。Microsoftの開発チーム(AutoGenチーム)が作っており、プラグインで機能を追加できる拡張性も備えています。プログラマーだけでなく、AIを活用したい研究者やビジネスパーソンにも役立つツールです。

🔥 なぜ話題?

ChatGPTをはじめとするAIに文書を読ませたいというニーズが急増している中、あらゆるファイル形式をAIが得意なMarkdownに簡単変換できるツールとして注目されています。Microsoft公式チームが開発している信頼性と、MCP(AIアプリとの連携プロトコル)対応という最新のAI統合機能も話題を後押ししています。

💡 こう使える!

例えば、社内にたまった何百件ものPDFの報告書やWordの議事録を、ChatGPTに読み込ませて要約や分析をしたいとき、MarkItDownを使えば「markitdown 報告書.pdf > 報告書.md」とコマンドを1回打つだけで、見出しや表の構造を保ったままAIが理解しやすいテキストに変換できます。

ユースケース: 大量のオフィス文書やPDFをAIに分析させるために、手軽にテキスト変換したい場面で使えるツール。

  • PDF・Word・Excel・PowerPoint・画像・音声・HTMLなど多数のファイル形式に対応
  • コマンド1行またはPythonコードで簡単に変換でき、表や見出しの構造もMarkdownとして保持
  • OpenAIのGPT-4oなどのAIと連携して画像の説明文を自動生成する機能も搭載
  • MCP(Model Context Protocol)サーバー対応でClaude DesktopなどのAIアプリと直接連携可能
  • プラグインシステムにより、サードパーティ製の拡張機能で対応形式を追加できる
GitHubで見る →

Python tool for converting files and office documents to Markdown.

技術情報

言語

Python

ライセンス

MIT

最終更新

2026-02-20

スター数

89,870

フォーク数

5,271

Issue数

442

トピック

autogenautogen-extensionlangchainmarkdownmicrosoft-officeopenaipdf

技術詳細

アーキテクチャ・仕組み

MarkItDownは、各ファイル形式ごとに専用のDocumentConverterクラスを持ち、ファイルをバイナリストリームとして読み込んでMarkdownテキストに変換する設計です。一時ファイルを作成せずにストリーム処理を行います。プラグインシステムにより、サードパーティが独自のコンバーターを追加できます。

対応ファイル形式

形式オプション依存グループ
PDF[pdf]
PowerPoint (.pptx)[pptx]
Word (.docx)[docx]
Excel (.xlsx)[xlsx]
旧Excel (.xls)[xls]
Outlook (.msg)[outlook]
音声 (wav, mp3)[audio-transcription]
YouTube動画[youtube-transcription]
画像 (EXIF/OCR)標準
HTML標準
CSV, JSON, XML標準
ZIP(中身を再帰処理)標準
EPUB標準

AI連携機能

  • LLMによる画像説明: OpenAIクライアントを渡すことで、画像やPowerPoint内の画像にAIが説明文を自動付与
    from openai import OpenAI
    md = MarkItDown(llm_client=OpenAI(), llm_model="gpt-4o", llm_prompt="optional custom prompt")
    
  • Azure Document Intelligence: MicrosoftのAI OCRサービスと連携して高精度な文書変換が可能
    markitdown file.pdf -d -e "<endpoint>"
    
  • MCP(Model Context Protocol)サーバー: Claude DesktopなどのLLMアプリケーションから直接MarkItDownを呼び出せる統合サーバーを提供(別パッケージ markitdown-mcp

対応環境

  • Python: 3.10以上が必須
  • Docker: Dockerfileが同梱されており、コンテナでの利用も可能
  • パッケージ管理: pip、uv、condaに対応
  • テスト環境: hatchを使用、Devcontainerも用意済み

類似ツールとの比較

READMEではtextractと比較されており、textractがプレーンテキスト抽出を主目的とするのに対し、MarkItDownは見出し・リスト・表・リンクなどの文書構造をMarkdownとして保持する点が差別化ポイントです。ただし、人間向けの高忠実度な文書変換より、AIやテキスト分析パイプライン向けに最適化されています。

プラグインシステム

  • プラグインはデフォルトで無効
  • --list-plugins で一覧表示、--use-plugins で有効化
  • GitHubで #markitdown-plugin ハッシュタグを検索して利用可能なプラグインを探せる
  • サンプルプラグイン (markitdown-sample-plugin) が開発ガイドとして同梱

注意点・破壊的変更(v0.0.1 → v0.1.0)

  • 依存パッケージがオプショングループに分離された([all]で従来互換)
  • convert_stream() がバイナリファイルオブジェクトのみ受け付けるようになった(io.StringIOは不可)
  • DocumentConverterのインターフェースがファイルパスではなくストリーム読み取りに変更

ライセンス・開発元

  • Microsoft AutoGenチームが開発
  • Microsoft Open Source Code of Conductを採用
  • コントリビューションにはMicrosoftのCLA(Contributor License Agreement)への同意が必要

インストール・クイックスタート

インストール手順

Python 3.10以上が必要です。仮想環境の作成を推奨します。

# 仮想環境を作成して有効化
python -m venv .venv
source .venv/bin/activate
# 全機能を含むインストール
pip install 'markitdown[all]'

必要な形式だけ選んでインストールすることもできます:

pip install 'markitdown[pdf, docx, pptx]'

基本的な使い方(コマンドライン)

markitdown path-to-file.pdf > document.md

Pythonコードで使う場合

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

Dockerで使う場合

docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

過去のトレンド履歴

関連リポジトリ

100以上のAIモデルを1つの窓口で呼び出せる!LLM統合ゲートウェイ — litellm

BerriAI/litellmPython40.9k

LiteLLMは、OpenAI・Anthropic・Azure・Google Vertex AIなど100以上のAI言語モデル(LLM)を、たった1つの共通フォーマットで呼び出せるPython SDK

60分の会議音声を一発で文字起こし&リアルタイム音声合成!Microsoftが放つオープンソース音声AI — VibeVoice

microsoft/VibeVoicePython34.9k

VibeVoiceはMicrosoftが開発したオープンソースの最先端音声AIモデル群です。VibeVoiceには大きく3つの機能があり、①最大60分の長時間音声を一度に文字起こしできる音声認識(AS

1ビットAIをあなたのPCで動かす!GPUなしでも超高速・省エネな大規模言語モデル推論 — BitNet

microsoft/BitNetPython34.4k

BitNetは、Microsoft が開発した「1ビットLLM(大規模言語モデル)」を高速に動かすための専用フレームワークです。通常のAIモデルは16ビットや32ビットの数値で計算しますが、BitNe

コード変更ほぼゼロでAIエージェントを強化学習で鍛える!どのフレームワークでもOK — agent-lightning

microsoft/agent-lightningPython16.4k

Agent Lightningは、AIエージェント(自律的にタスクをこなすAIプログラム)を強化学習(試行錯誤から学ぶ手法)で訓練するためのMicrosoft製ツールです。最大の特徴は、既存のAIエー

AIエージェントの構築・連携・実行をまるごとカバー!Python&.NET対応のマルチエージェント基盤 — agent-framework

microsoft/agent-frameworkPython8.8k

Microsoft Agent Frameworkは、AIエージェント(自律的に考えて行動するAIプログラム)を作り、複数のエージェントを連携させて複雑な仕事をこなすワークフローを構築するためのフレー