An open API service indexing awesome lists of open source software.

https://github.com/tks18/open-memory-lane

Open Source, Memory Efficient Version of Windows Recall made with Python
https://github.com/tks18/open-memory-lane

ffmpeg opencv python recall windows-recall

Last synced: about 2 months ago
JSON representation

Open Source, Memory Efficient Version of Windows Recall made with Python

Awesome Lists containing this project

README

          

[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)

# 🧠 Open Memory Lane

**Open-source, Memory-efficient & usable version of Windows Recall** β€” lightweight background capture + timelapse summaries, built for daily use. πŸš€

---

## ✨ What it does

- πŸ“Έ Capture desktop screenshots as **WebP** (small, fast).
- πŸ”Ž Detect meaningful changes using **dhash_bits (OpenCV)** β€” fast perceptual hash; ignores tiny cursor flickers.
- πŸ—„οΈ Store images + metadata (timestamp, session, wintitle, app name) in an **SQLite** index.
- 🎞️ Build 15-min detailed clips and a short **daily timelapse summary** (timelapse speed derived from summary FPS vs detailed FPS).
- πŸ” Robust backlog processing: missed videos/summaries are queued and created on next run.
- πŸ–±οΈ System tray app to control / exit the recorder easily.

---

## πŸ–₯️ Client-side features

- πŸ“œ **Scrollable Timeline View**
- Navigate through your day visually with a smooth, zoomable timeline.
- Jump to exact sessions (15-min detailed clips or daily summaries).
- Filter by **app name**, **window title**, or **time range**.

- πŸ”Ž **Query the Database**
- Built-in query console to search the SQLite metadata:
- Example: _β€œShow all Chrome windows between 2–4 PM”_
- Example: _β€œList apps I used more than 30 mins today”_
- Fast results with indexed lookups.

- πŸ“€ **Export Data as CSV**
- Export metadata (timestamp, app name, window title, etc.) into a clean CSV.
- Perfect for analytics in Excel / Power BI / Python notebooks.
- Optional: include file paths to screenshots for external use.

---

## 🧩 End-to-end workflow

1. **Capture**: lightweight background screenshots + metadata storage.
2. **Process**: timelapse clips auto-generated daily.
3. **Explore**: open the timeline view, scroll through your day.
4. **Query**: filter/search by apps, titles, or times.
5. **Export**: save your activity log to CSV for analysis or sharing.

---

## βš™οΈ Quick start

1. 🐣 Create venv & install:

```bash
uv init
.venv\Scripts\activate
uv sync
```

2. πŸ› οΈ Install **ffmpeg** and make sure it’s on your PATH.
3. βš™οΈ Edit `.config.yml` (paths, fps, intervals) if needed.
4. ▢️ Run the tray app:

```bash
uv run start_app.py
```

or run the `start.bat`

or build a single exe with PyInstaller and add a shortcut to `shell:startup` for autostart. ✨

---

## πŸ“¦ Minimal dependencies

- `mss`, `Pillow`, `numpy`, `opencv-python`, `pystray`
(see `pyproject.toml`) βœ…

---

## 🎯 Key design choices

- **WebP** for compact storage. πŸ—œοΈ
- **dhash_bits via OpenCV** for quick, low-false-positive change detection (mouse wiggles ignored). 🧠
- **SQLite** DB for metadata + reliable backlog processing (never lose pending processing). πŸ’Ύ
- **FFmpeg concat + per-image durations / fps-based timelapse** to create short, watchable daily summaries. 🎬

---

## 🧰 Use cases

- ⏱️ **Productivity tracking** β€” glance at a short visual timeline.
- 🎞️ **Video/Recap generation** β€” daily highlights in minutes.
- πŸ’š **Digital wellbeing** β€” understand app usage visually.

---

## πŸ“ Notes

- Runs CPU-only (no GPU required). βš™οΈ
- All data stays local β€” privacy-first. πŸ”’
- Want the summary always X minutes? tweak `summary_fps` in `.config.yml`. βš™οΈ
- Want to change the capture interval? tweak `capture_interval` in `.config.yml`. βš™οΈ
- Want to change the WebP quality? tweak `webp_quality` in `.config.yml`. βš™οΈ

---

Sudharshan TK Β© 2025 β€” Built for simplicity & privacy. ❀️

[![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/sudharshan-tk/open-memory-lane)

---