Takeout Lens
Parses a Google Takeout archive into a local SQLite file and puts a dashboard on it: a timeline, top lists, a location density plot and a searchable feed. Nothing leaves the machine.
- Year
- 2026
- Kind
- Data · TypeScript
- Status
- Shipped

Takeout hands you years of searches, watch history and location pings as a folder of mismatched JSON and HTML. Takeout Lens sends each file to a parser, turns every timestamp format into UTC, and reports the files it does not understand. The server binds to 127.0.0.1 only, and the location plot has no basemap, because map tiles would tell a server where you are looking.
Google exports the same event more than once. On the synthetic archive, 3,103 parsed events fold to 1,750 real ones. Keying on exact milliseconds folds only 342 copies, because the HTML copy has second precision. Keying on the whole second folds all 1,353. Each ingest is one transaction, and a second run inserts nothing.
Location History is streamed. On a 400 MiB file, reading it whole peaks at 880 MiB of memory against 93 MiB streamed. At 600 MiB the whole-file read fails outright. Streaming is about six times slower. The limit: it was built against a synthetic generator and published format descriptions, so real exports will have gaps.
