Find and open a Chrome extension SQLite database
Solved Email & Outlook
RK
Rachel Kim
August 25, 2020
2 replies
6,540 views
Reviewed by moderators

A Chrome extension I rely on stores years of my data and offers no export. I want to reach its underlying storage, which I understand involves SQLite somewhere in the profile.

Where does extension data physically live and how do I open it safely?

Accepted Answer
Verified by Eddie Thwan, Forum Moderator ยท Reviewed August 2020

Reachable, with one mapping to learn first: Chrome gives extensions several storage APIs and they land in different on disk formats, so the hunt starts by finding which yours used.

The profile lives at %localappdata%\Google\Chrome\User Data\Default on Windows. Inside it, extension data sits keyed by the extension's 32 character id, findable from chrome://extensions with Developer mode on. The candidates: Local Extension Settings\<id> holds chrome.storage.local data as a LevelDB folder of .ldb files, the most common home for modern extensions. IndexedDB\chrome-extension_<id>_0.indexeddb.leveldb holds IndexedDB data, LevelDB again. Databases\chrome-extension_<id>_0 holds the old WebSQL storage, and those files are genuine SQLite, the format you heard about.

Opening them: close Chrome first, everything is locked and half flushed while it runs. Work on copies of the folders as a habit. The SQLite files open directly in DB Browser for SQLite, free and graphical, browse tables and export CSV from there. The LevelDB folders need a LevelDB viewer or a short Python script with the plyvel library to dump keys and values, which for chrome.storage data emerge as readable JSON.

Given years of data at stake, an alternative worth knowing: with Developer mode on you can open the extension's own background context from chrome://extensions, Inspect views, then run chrome.storage.local.get(null, console.log) in its console, dumping everything the extension stored as live JSON, no file formats involved. Often the fastest export an exportless extension will ever offer.

The console dump trick got everything in thirty seconds as JSON, years of entries saved before I ever opened a file format. Kept the LevelDB notes for the day an extension hides its data deeper.