Export Chrome history

Last substantive revision: 2016-12-25

Introduction

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 ~/.config/chromium/Default/History.

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:

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

In sqlite3:

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

CC0
The content on this page is licensed under the CC0 1.0 Universal Public Domain Dedication.