markitdown について
markitdown は、文書、メディア、ウェブコンテンツ、構造化データを Markdown に変換する Python ユーティリティです。LLM 分析向けに構造を保った出力を作成し、複数ファイルの一括変換にも対応します。
主な機能
- 01Office ファイルと PDF の変換
- 02画像 OCR と音声文字起こし
- 03ウェブページと動画字幕の抽出
- 04CSV、JSON、XML の変換
- 05ファイルや ZIP の一括変換
活用シーン
- 01LLM 分析用の文書準備
- 02PDF や Office ファイルからのテキスト抽出
- 03音声や YouTube 動画の文字起こし
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jimmc414/ kosmos --skill markitdownインストール後、Claude Code で/markitdownを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced_integrations.mddocument_conversion.mdmedia_processing.mdstructured_data.mdweb_content.mdscripts/batch_convert.py詳細
MarkItDown
概要
MarkItDown は、さまざまなファイル形式を Markdown 形式に変換する Python ユーティリティです。LLM やテキスト分析のパイプラインでの使用に最適化されています。ドキュメントの構造(見出し、リスト、表、ハイパーリンク)を保持しながら、クリーンでトークン効率の高い Markdown 出力を生成します。
このスキルを使用する場面
次のようなリクエストがあったときに、このスキルを使用します。
- ドキュメントを Markdown 形式に変換する
- PDF、Word、PowerPoint、Excel ファイルからテキストを抽出する
- 画像に OCR を実行してテキストを抽出する
- 音声ファイルをテキストに書き起こす
- YouTube 動画のトランスクリプトを抽出する
- HTML、EPUB、ウェブコンテンツを Markdown に変換する
- 構造化データ(CSV、JSON、XML)を読みやすい Markdown に変換する
- 複数のファイルや ZIP アーカイブを一括変換する
- LLM 分析や RAG システム向けにドキュメントを準備する
主な機能
1. ドキュメント変換
構造を保持しながら、Office ドキュメントや PDF を Markdown に変換します。
対応形式:
- PDF ファイル(Azure Document Intelligence との連携はオプション)
- Word ドキュメント(DOCX)
- PowerPoint プレゼンテーション(PPTX)
- Excel スプレッドシート(XLSX、XLS)
基本的な使用方法:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("document.pdf")
print(result.text_content)
コマンドライン:
markitdown document.pdf -o output.md
ドキュメント固有の機能について詳しくは、references/document_conversion.md を参照してください。
2. メディア処理
OCR を使用して画像からテキストを抽出し、音声ファイルをテキストに書き起こします。
対応形式:
- 画像(JPEG、PNG、GIF など)。EXIF メタデータの抽出にも対応
- 音声認識による音声ファイルの文字起こし(speech_recognition が必要)
OCR による画像処理:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("image.jpg")
print(result.text_content) # Includes EXIF metadata and OCR text
音声の文字起こし:
result = md.convert("audio.wav")
print(result.text_content) # Transcribed speech
高度なメディア処理オプションについては、references/media_processing.md を参照してください。
3. ウェブコンテンツの抽出
ウェブ上のコンテンツや電子書籍を Markdown に変換します。
対応形式:
- HTML ファイルとウェブページ
- YouTube 動画のトランスクリプト(URL 経由)
- EPUB 書籍
- RSS フィード
YouTube のトランスクリプト:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("https://youtube.com/watch?v=VIDEO_ID")
print(result.text_content)
ウェブコンテンツの抽出について詳しくは、references/web_content.md を参照してください。
4. 構造化データの処理
構造化データ形式を、読みやすい Markdown の表に変換します。
対応形式:
- CSV ファイル
- JSON ファイル
- XML ファイル
CSV から Markdown の表への変換:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("data.csv")
print(result.text_content) # Formatted as Markdown table
形式ごとのオプションについては、references/structured_data.md を参照してください。
5. 高度な連携機能
AI を活用した機能により、変換品質を向上させます。
Azure Document Intelligence: 表の抽出やレイアウト分析を改善し、PDF 処理を強化します。
from markitdown import MarkItDown
md = MarkItDown(docintel_endpoint="<endpoint>", docintel_key="<key>")
result = md.convert("complex.pdf")
LLM による画像の説明: GPT-4o を使用して、詳細な画像の説明を生成します。
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("presentation.pptx") # Images described with LLM
連携方法について詳しくは、references/advanced_integrations.md を参照してください。
6. 一括処理
複数のファイルや ZIP アーカイブ全体を一度に処理します。
ZIP ファイルの処理:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("archive.zip")
print(result.text_content) # All files converted and concatenated
一括処理スクリプト: 付属の一括処理スクリプトを使用して、ディレクトリ内のファイルを変換します。
python scripts/batch_convert.py /path/to/documents /path/to/output
実装の詳細については、scripts/batch_convert.py を参照してください。
インストール
すべての機能を含むインストール:
uv pip install 'markitdown[all]'
モジュール別インストール(特定の機能):
uv pip install 'markitdown[pdf]' # PDF support
uv pip install 'markitdown[docx]' # Word support
uv pip install 'markitdown[pptx]' # PowerPoint support
uv pip install 'markitdown[xlsx]' # Excel support
uv pip install 'markitdown[audio]' # Audio transcription
uv pip install 'markitdown[youtube]' # YouTube transcripts
要件:
- Python 3.10 以降
出力形式
MarkItDown は、LLM での利用に最適化された、クリーンでトークン効率の高い Markdown を生成します。
- 見出し、リスト、表を保持します
- ハイパーリンクと書式を維持します
- 関連するメタデータ(EXIF、ドキュメントのプロパティなど)を含めます
- 一時ファイルは作成しません(ストリーミング方式)
よくあるワークフロー
RAG 向けのドキュメント準備:
from markitdown import MarkItDown
md = MarkItDown()
# Convert knowledge base documents
docs = ["manual.pdf", "guide.docx", "faq.html"]
markdown_content = []
for doc in docs:
result = md.convert(doc)
markdown_content.append(result.text_content)
# Now ready for embedding and indexing
ドキュメント分析パイプライン:
# Convert all PDFs in directory
for file in documents/*.pdf; do
markitdown "$file" -o "markdown/$(basename "$file" .pdf).md"
done
プラグインシステム
MarkItDown は、独自の変換ロジックを追加できる拡張可能なプラグインに対応しています。セキュリティ上の理由から、プラグインはデフォルトで無効になっています。
from markitdown import MarkItDown
# Enable plugins if needed
md = MarkItDown(enable_plugins=True)
リソース
このスキルには、各機能の包括的なリファレンスドキュメントが含まれています。
- references/document_conversion.md - PDF、DOCX、PPTX、XLSX の詳細な変換オプション
- references/media_processing.md - 画像 OCR と音声文字起こしの詳細
- references/web_content.md - HTML、YouTube、EPUB の抽出
- references/structured_data.md - CSV、JSON、XML の変換形式
- references/advanced_integrations.md - Azure Document Intelligence と LLM の統合
- scripts/batch_convert.py - ディレクトリを対象としたバッチ処理ユーティリティ