mcpField
M
markitdown

markitdown

github.com/jackspaceドキュメント1686 回インストール12 週間前に更新
リポジトリ

markitdown について

MarkItDownは、文書、メディア、ウェブコンテンツ、構造化データを、構造を保ちながらMarkdownに変換するPythonユーティリティです。テキスト分析やLLMパイプラインを構築する開発者向けで、PDF解析や画像説明の連携機能も選択できます。

主な機能

  1. 01OfficeファイルとPDFをMarkdownに変換
  2. 02OCRによる画像テキスト抽出
  3. 03音声とYouTube動画の文字起こし
  4. 04HTML、EPUB、RSS、構造化データの変換
  5. 05ファイルとZIPアーカイブの一括変換
  6. 06オプションのAI画像説明とPDF解析

活用シーン

  1. 01LLM分析用の文書準備
  2. 02Office文書のMarkdown変換
  3. 03画像や音声からのテキスト抽出
  4. 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)

リソース

コメント