This page explains how to export one’s Google Chrome history on Ubuntu. Parts of this page should work for Chromium and for other operating systems as well but I don’t make any guarantees.
Locating the history file
The history database is located at
~/.config/google-chrome/Default/History for Google Chrome.
For Chromium, it is located at
The locations may differ if you have multiple Chrome profiles.
Neither file has an extension, but they are databases that can be queried using SQLite.
Creating the dump
I recommend the following before continuing:
- Close Chrome
- Make a copy of the history file and work with this copy instead of the actual history file
Then run the following command in a shell to get a list of visited URLs, sorted by last visit date:
sqlite3 -header -csv History "SELECT \ datetime(last_visit_time/1000000-11644473600, 'unixepoch', \ 'localtime') as 'date',url FROM urls ORDER BY \ last_visit_time DESC;" > out.csv
Chrome seems to use FILETIME for representing time, whose epoch and unit length both differ from those of Unix time; hence the dividing and subtracting. Then the
'unixepoch' converts the Unix time to a date and time, and
'localtime' adjusts for timezone differences (see the documentation).
The above limits output to a single line for each URL. To obtain a more complete browsing history, one must combine the
urls table with the
visits table. Run the following command to obtain a history of visits, where each URL can occur multiple times:
sqlite3 -header -csv History "SELECT \ datetime(visits.visit_time/1000000-11644473600, 'unixepoch', \ 'localtime') as 'visit_time',urls.url from urls,visits \ WHERE urls.id = visits.url ORDER BY visit_time DESC" > out.csv
Other useful commands
sqlite> .tables downloads meta urls downloads_url_chains segment_usage visit_source keyword_search_terms segments visits sqlite> PRAGMA table_info(urls); 0|id|INTEGER|0||1 1|url|LONGVARCHAR|0||0 2|title|LONGVARCHAR|0||0 3|visit_count|INTEGER|1|0|0 4|typed_count|INTEGER|1|0|0 5|last_visit_time|INTEGER|1||0 6|hidden|INTEGER|1|0|0 7|favicon_id|INTEGER|1|0|0 sqlite> PRAGMA table_info(visits); 0|id|INTEGER|0||1 1|url|INTEGER|1||0 2|visit_time|INTEGER|1||0 3|from_visit|INTEGER|0||0 4|transition|INTEGER|1|0|0 5|segment_id|INTEGER|0||0 6|visit_duration|INTEGER|1|0|0
- Answer to “Can Chrome browser history be exported to an HTML file?”; the sqlite3 commands are from this answer.
- Google Chrome § History on ForensicsWiki.