Chrome bookmarks

From Just Solve the File Format Problem
Revision as of 18:56, 20 January 2016 by Ma95032 (Talk | contribs)

Jump to: navigation, search
File Format
Name Chrome bookmarks
Released 2008

Bookmarks in Google Chrome are stored in a file named Bookmarks (with no extension) in a data directory with a location that is system-specific, but in Windows Vista can be found in the directory \Users\username\AppData\Local\Google\Chrome\User Data\Default. A backup copy of the previous version of the file is saved in Bookmarks.bak.

The format does not appear to be documented anywhere, but it is apparently in JSON format, using a hierarchical structure corresponding to the bookmark folder structure. Attribute names in a bookmark entry include "date added", "id", "name", "type", and "url". The "id" values are numeric, probably assigned sequentially as bookmarks are added.

Character set

The file appears to be expressed in ASCII, with line breaks as CRLF (0D+0A), though the file examined was from the Windows version; it is possible that bookmark files from other systems could use line-break conventions appropriate to those systems. Non-ASCII characters are given as escape sequences like \u00ED, representing the Unicode character given by a four-digit hexadecimal number following "\u" (in this case the accented letter í).

Date format

The date format consists of huge numbers like 12871673787657328 or 12605573593000000. These examples are taken from an actual bookmark file; the one with six zeroes at the end is a clue that perhaps the time units are some tiny fraction of a second. Stripping the zeroes yields 12605573593, still one digit longer than current Unix-style timestamps, but stripping the final 3 gets a timestamp that translates to Fri, 11 Dec 2009 18:49:19 GMT, which may be the correct timestamp for the bookmark; this means that the timestamps are expressed with seven digits of precision beneath the seconds (in other words, in ten-millionths of a second). Or perhaps the added digits have some other specialized meaning; apparently only Google knows.

The chrome bookmark file date format, e.g., the date_added field, is in microseconds since January 1, 1601. See the open-source Chromium source code, and search for MicrosecondsToFileTime. Sample conversion code can be found on stackoverflow "How to parse the date_added field in Chrome bookmarks file?"

Please note the internal chrome bookmark file date format differs from the Netscape exported bookmark HTML file date format. Netscape exported bookmark HTML file dates, e.g., the ADD_DATE field, is in seconds since January 1, 1970.

Source code

It's possible more info about the format could be gleaned by looking through the open-source Chromium source code, if that deals with bookmarks the same way as Chrome itself. Try searching on "bookmarks". The code there says that timestamps are milliseconds since the epoch, but as seen above there seem to be way more digits than that.

Personal tools