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(WebAssembly 기반) 및 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 커뮤니티 플러그인 브라우저에서 설치하거나, 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 기술을 활용해 이미지 기반 노트를 검색 가능하고 재사용 가능하게 만듭니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트