A work in progress privacy focused alternative to Microsoft Copilot and similar spyware.
Screenshot Timeline is an automated screenshot capture and analysis tool that uses OCR to extract text from images and organize them with tags for easy searching and filtering.
Thanks to Screenshot Timeline, you can now easily search through your screenshots and find specific ones based on the text they contain.
- Automated screenshot capture at customizable intervals
- OCR processing using Tesseract
- Tag generation based on extracted text
- Search functionality for finding specific screenshots
- Real-time updates of screenshot processing status
- Ability to edit tags for each screenshot
- Batch processing of unanalyzed screenshots
- Configuration options for OCR processing and screenshot management
- Backend: Python with Flask
- Frontend: HTML, CSS, JavaScript
- OCR: Tesseract
- Task Queue: Celery with Redis
- Database: SQLite
- Image Processing: OpenCV
We chose Tesseract for OCR processing due to its:
- Open-source nature and active community support
- High accuracy in text recognition across various languages
- Easy integration with Python through the pytesseract library
- Flexibility in configuration for different use cases
- Continuous improvements and updates
- Update and upgrade your system:
sudo apt update && sudo apt upgrade -y
- Install required system dependencies:
sudo apt install -y python3 python3-pip redis-server spectacle tesseract-ocr libtesseract-dev
-
Clone the repository: git clone https://github.com/tcsenpai/screenshot-timeline.git cd screenshot-timeline
-
Create a virtual environment and activate it:
python3 -m venv venv
source venv/bin/activate
- Install Python dependencies:
pip install -r requirements.txt
- Start the app:
./start_services.sh
- Open your browser and go to http://localhost:5000
The application can be configured through the web interface. Options include:
- Setting screenshot capture intervals
- Triggering OCR for all unprocessed images
- Deleting all screenshots and resetting the database
We welcome contributions to the Screenshot Timeline project! If you'd like to contribute, please follow these steps:
- Fork the repository on GitHub.
- Create a new branch with a descriptive name for your feature or bug fix.
- Make your changes, ensuring you follow the project's coding style and conventions.
- Document your changes
- Ensure all works by running the code on your machine
- Commit your changes with a clear and descriptive commit message.
- Push your branch to your fork on GitHub.
- Open a pull request against the main repository's
main
branch. - Provide a clear description of your changes in the pull request.
Please note that by contributing to this project, you agree to license your contributions under the project's MIT License. For major changes or new features, please open an issue first to discuss the proposed changes. We strive to maintain a welcoming and inclusive community, so please adhere to our code of conduct in all interactions related to the project.
This project is licensed under the MIT License.
- Tesseract OCR: https://github.com/tesseract-ocr/tesseract
- Flask: https://flask.palletsprojects.com/
- Celery: https://docs.celeryproject.org/
- OpenCV: https://opencv.org/
- Material Design Components: https://material.io/develop/web