markitdown について
MarkItDownは、文書、メディア、ウェブコンテンツ、構造化データを、構造を保ちながらMarkdownに変換するPythonユーティリティです。テキスト分析やLLMパイプラインを構築する開発者向けで、PDF解析や画像説明の連携機能も選択できます。
主な機能
- 01OfficeファイルとPDFをMarkdownに変換
- 02OCRによる画像テキスト抽出
- 03音声とYouTube動画の文字起こし
- 04HTML、EPUB、RSS、構造化データの変換
- 05ファイルとZIPアーカイブの一括変換
- 06オプションのAI画像説明とPDF解析
活用シーン
- 01LLM分析用の文書準備
- 02Office文書のMarkdown変換
- 03画像や音声からのテキスト抽出
- 04文書コレクションの一括処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jackspace/ claudeskillz --skill markitdownインストール後、Claude Code で/markitdownを入力して読み込まれたか確認します。
同梱ファイルSKILL.json
詳細
MarkItDown
概要
MarkItDown は、さまざまなファイル形式を Markdown 形式に変換する Python ユーティリティです。LLM やテキスト分析パイプラインでの使用に最適化されています。ドキュメントの構造(見出し、リスト、表、ハイパーリンク)を保ちながら、簡潔でトークン効率の高い Markdown 出力を生成します。
このスキルを使用する場面
ユーザーから次のようなリクエストがあった場合に、このスキルを使用します。
- ドキュメントを Markdown 形式に変換する
- PDF、Word、PowerPoint、Excel ファイルからテキストを抽出する
- 画像に OCR を実行してテキストを抽出する
- 音声ファイルをテキストに文字起こしする
- YouTube 動画の文字起こしテキストを抽出する
- HTML、EPUB、Web コンテンツを 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
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
3. Web コンテンツの抽出
Web ベースのコンテンツや電子書籍を Markdown に変換します。
対応形式:
- HTML ファイルと Web ページ
- 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)
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
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
6. 一括処理
複数のファイルや ZIP アーカイブ全体を一度に処理します。
ZIP ファイルの処理:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("archive.zip")
print(result.text_content) # All files converted and concatenated
一括変換:
from pathlib import Path
from markitdown import MarkItDown
md = MarkItDown()
for source in Path("documents").rglob("*.pdf"):
result = md.convert(str(source))
Path(f"output/{source.stem}.md").write_text(result.text_content, encoding="utf-8")
インストール
すべての機能を含む完全インストール:
pip install 'markitdown[all]'
モジュール別インストール(特定の機能):
pip install 'markitdown[pdf]' # PDF support
pip install 'markitdown[docx]' # Word support
pip install 'markitdown[pptx]' # PowerPoint support
pip install 'markitdown[xlsx]' # Excel support
pip install 'markitdown[audio]' # Audio transcription
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)