63

In Google Chrome, is there a built-in method to make an HTML file I can save to my local machine, like the file for bookmarks?

If not, is there an extension that does the same?

3
  • Bear in mind that today (Feb 2018), and for quite a few months now, Chrome allows you to link a device's data (history, bookmarks, etc), with an account. So, you can sync a google account with a device and then you can access all that information from any other device using that account. I know the question was about exporting it but there is REALLY no need to do that (I was obviously making myself the same question today, which got me here, but then I thought that there should be a better way, this is it).
    – newbie
    Feb 28, 2018 at 11:20
  • 1
    @newbie, unless you want to save your history in a secure storage away from anyone accessing it online including google
    – alchemy
    Mar 16, 2020 at 0:32
  • Or unless you do not manage your account and your administrator has disabled this feature.
    – Patrick
    Jan 26, 2021 at 22:22

5 Answers 5

52

It's even simpler than using an extension: the History page in Chrome is already an HTML page, as are all the other panes and pages in Chrome.

Simply right-click on an empty part of the page, select Save As... and save as full HTML. If you re-open in Chrome, it'd render the same, icons and all. If you try opening the resulting page in a different browser, you'd still get all the history data, just not the styles and icons.

Update May 2016

Since Google constantly changes the way internal pages (history, bookmarks, settings etc.) are rendered, the original answer is no longer accurate. I.e. in Chrome 52 (May 2016) the History URLs appear inside an iframe with a paging mechanism.

For posterity's sake, the best method to get all the bookmarks data (url + date) as a CSV file is described in this article.

TL;DR:

  1. Make sure you have sqlite3 installed in your system. You can use compiled binaries for Windows systems.
  2. Locate the History file:
    • on macOS: cd ~/Library/Application\ Support/Google/Chrome/Default/
    • on Windows: cd "%LocalAppData%\Google\Chrome\User Data\Default"
    • on Linux: cd ~/.config/google-chrome/Default
  3. Copy the file History to another location (you can't use the original while Chrome is open).
  4. From a command line:
C:\> sqlite3 History
sqlite> .headers on
sqlite> .mode csv
sqlite> .output my-history.csv
sqlite> SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime'), title, url FROM urls ORDER BY last_visit_time DESC;
sqlite> .quit

You should now have a file called my-history.csv containing all page URLs, titles, and their last visit dates.

Script as a gist can be found here.

Hopefully, this works for you in 2016. Can't promise it will in 2019 though :)

Update December 2019

Greetings from the future :)
I can confirm the Sqlite 3 solution is still working in 2019, and actually works with other Chromium-based browsers (recently tested successfully with Brave 1.1.20).

15
  • 2
    Actually, that doesn't really work, because the history is iframed and paged, so you only get a tiny little bit of your browsing history.
    – Quandary
    Sep 7, 2013 at 18:15
  • 1
    It worked on Chrome 28 on my Mac. But even if it doesn't work for you, right click in the I frame and choose "save frame source" Sep 8, 2013 at 6:03
  • 3
    Even if it works, it will only grab the current results, not the whole history.
    – Synetech
    Dec 28, 2013 at 21:15
  • 1
    @Noumenon - done. Sep 25, 2017 at 3:47
  • 2
    Can also confirm Sqlite 3 solution works with other Chromium browsers (recently tested successfully with Brave). Dec 15, 2019 at 21:49
32

In Mac:

cd "~/Library/Application Support/Google/Chrome/Default"
sqlite3 History "select datetime(last_visit_time/1000000-11644473600,'unixepoch'),url from  urls order by last_visit_time desc" > ~/history_export.txt

In Windows:

cd "%LocalAppData%\Google\Chrome\User Data\Default"
sqlite History "select datetime(last_visit_time/1000000-11644473600,'unixepoch'),url from  urls order by last_visit_time desc" > history_export.txt

This could take a really long time if you are on Windows and do not have SSD.

8
  • 2
    And where does the HTML part come in?
    – Synetech
    Dec 28, 2013 at 21:16
  • That's a plain text. However it could be useful for Mac users because the previous method works only in Windows Dec 28, 2013 at 22:18
  • 2
    Yes, I know, but the question is about how the Chrome history can be exported to HTML, not plain-text.
    – Synetech
    Dec 28, 2013 at 22:20
  • 6
    A couple of things have changed since this answer <superuser.com/a/694283/459638> was written (on the mac side of things at least, can't speak for Windows side). 1. sqlite is now (always was?) shipped with OSX so no need to install it. 2. The path for Chrome's app data has changed. Now the command you should use is: cd ~/Library/Application\ Support/Google/Chrome/Default/ Jun 17, 2015 at 4:45
  • 1
    Ubuntu Linux: ~/.config/chromium/Default for Chromium
    – alchemy
    Mar 16, 2020 at 0:38
17

There is a tool called Chrome History View that exports to several different formats, including HTML. There is a writeup of the tool here.

enter image description here

4
  • How do you set the Chrome user-data-dir if you're not using the default? Also, is there an IE version?
    – Pacerier
    May 25, 2016 at 18:46
  • 1
    @Pacerier there is an option to set a specific history file, in [options]--[advanced option]
    – holly
    Aug 18, 2016 at 14:47
  • @Pacerier BrowserHistoryView, also from Nirsofr, can manage the history of several browsers at once, including IE, Firefox, Chrome and a few others.
    – GabrielB
    Sep 25, 2017 at 5:13
  • @GabrielB Likewise, newer version of the app (1.41 & newer) already support Microsoft's Chromium-based Edge--just tested & it works perfectly with the Microsoft Chromium Edge Version 80.0.361.9 (dev build).
    – ikjadoon
    Dec 24, 2019 at 3:26
5

I just created a Chrome extension that exports your Chrome history in csv and json called Export History.

You can open the json file in Chrome and view it like a webpage if you install the JSONView extension, and can open the csv file in Excel or Numbers.

7
  • 1
    I have 2 questions: 1) Is it paid extension or payment is only an option 2) Why it requires me to login into google account?
    – yatsek
    Jan 19, 2015 at 9:09
  • 1) payment is an option for CSV exports; JSON exports are free. 2) the google login is for the Google payment system, which you only need if you upgrade. I should fix that to only require a login if you're upgrading.
    – cgenco
    Jan 20, 2015 at 11:56
  • 1
    The reviews indicate that it is nag-ware and that the dates are off (you need to account for time-zone differences).
    – Synetech
    Dec 17, 2015 at 18:03
  • @Synetech I'm still not sure a reliable way to account for time zones because of how Excel handles them, but figuring it out is top on my todo list!
    – cgenco
    Jan 21, 2016 at 22:21
  • @cgenco, It still insists on sign-in. Why is signing-in required to tryout the app?
    – Pacerier
    May 8, 2016 at 8:01
0

For an indirect solution that might work for people trying to do analytics rather than monitoring, check out rescutime.com. It can show you reports of your browsing history and allows you to export those reports to csv. These may be aggregate reports.

Not the answer you're looking for? Browse other questions tagged or ask your own question.