Extract text from all kinds of documents. Delegates the heavylifting to other libraries and tools like Apache Tika, tesseract and many more.
#!/usr/bin/env python
from doctext.Processor import Processor
import logging
# set logging level to INFO to see what's going on
logging.basicConfig(level=logging.INFO)
p = Processor()
print(p.run('/Users/me/some.pptx'))
# specify the language for tesseract
p = Processor(tesseract_lang='deu')
print(p.run('/Users/me/some-german.png'))
# or with Whisper (see https://openai.com/pricing)
p = Processor(openai_api_key='your-openai-api-key')
print(p.run('/Users/me/some.m4a'))Why yet another library for extracting text from documents? Because textract seems to be more or less abandoned and requires some outdated versions of dependencies. Also it does not support all the file formats I need. Apache Tika is great but surprisingly did not support some of the file formats I needed. So I decided to write a wrapper around a wrapper.
Update: I added support for docling as the default first choice for every file. If you are not going to extract text from audio or video files, you should be fine with docling and do not use my library as a wrapper around it.
pip install doctextbrew install ffmpeg imagemagick poppler libheif dcraw ocrmypdf