scambier/obsidian-text-extractor

A (companion) plugin to facilitate the extraction of text from images (OCR) and PDFs.

Obsidian Text Extractor – 何であるか

Obsidian プラグイン としてコミュニティによって作成されたもので、通常は画像やスキャンされたページのみを含むファイル(PNG/JPG/… 画像、PDF ドキュメント、Office ファイル(DOCX、XLSX))からプレーンテキストを抽出できるようにします。ブラウザ内で直接オープンソースの OCR エンジン Tesseract.js(および PDF 解析ヘルパー)を呼び出し、結果をキャッシュすることで、他のプラグイン(例:Omnisearch)が再利用できるようにします。

なぜ重要なのか

  • 検索可能なノート – Obsidian の組み込み検索は、画像やスキャンされた PDF 内のテキストを認識できません。このプラグインにより、その隠れたテキストがノートのインデックスや、必要とする他のプラグインに可視化されます。
  • 単一の真実源 – 各プラグインが独自の OCR パイプラインを実装するのではなく、すべてが同じ API を呼び出せるため、メモリと CPU を節約できます。
  • ローカル処理 – OCR はユーザーのブラウザ内で実行され、データはリモートサーバーに送信されません(ネットワークトラフィックは、Tesseract の言語パックを最初にダウンロードする際のみ発生)。

動作の概要(高レベル)

  1. ユーザーが抽出をトリガー – サポートされているファイル上でコンテキストメニューから選択。
  2. ファイルタイプの検出 – 拡張子(.png.pdf.docx など)を確認し、処理可能かどうかを判断。
  3. OCR / 解析
    • 画像 → Tesseract.js(WebAssembly ベースの OCR)。
    • PDF → pdf-extract ライブラリ。埋め込まれたテキストを抽出、または各ページで OCR にフォールバック。
  4. キャッシュ – 結果の文字列はプラグインフォルダ内に小さな .json ファイルとして保存されます。以降の呼び出しはキャッシュされた結果を即座に返し、デバイス間で同期可能。
  5. API の公開 – 他のプラグインは extractText(file) または isInCache(file)TextExtractorApi から呼び出せます。

主な制限(README に記載)

  • PDF の抽出は不安定 – 複数の PDF でテキストが抽出されない。問題追跡リストには複数のオープンバグがあります。
  • モバイル対応なし – OCR ライブラリは Obsidian のモバイルアプリで動作しないため、キャッシュされたコピーがない限り空文字列を返します。
  • 初回実行時にインターネット接続が必要 – Tesseract の言語データはオンデマンドでダウンロードされます。
  • メンテナンスされていない – 作者が開発から離れているため、貢献は歓迎ですが、積極的な開発は保証されません。

使い始め

  1. Obsidian Community Plugins ブラウザからインストール、または GitHub から最新リリースをダウンロード。
  2. ノートを開き、サポートされているファイルを右クリックして テキストを抽出 を選択。
  3. 抽出されたテキストはキャッシュに保存され、他のプラグイン(例:Omnisearch)や README に示された API を通じてアクセス可能になります。

開発者向け

export type TextExtractorApi = {
  extractText: (file: TFile) => Promise<string>
  canFileBeExtracted: (filePath: string) => boolean
  isInCache: (file: TFile) => Promise<boolean>
}

export function getTextExtractor(): TextExtractorApi | undefined {
  return (app as any).plugins?.plugins?.['text-extractor']?.api
}

他の Obsidian プラグインから await getTextExtractor()?.extractText(myFile) を呼び出すために上記を使用してください。


結論:Obsidian Text Extractor は、Obsidian ノートテイキングエコシステム向けの実用的でローカル実行型の OCR ヘルパーです。研究レベルの AI モデルではありませんが、既存の ML ベース OCR 技術を活用して、画像ベースのノートを検索可能かつ再利用可能にします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト