Chrome bookmarks
Dan Tobias (Talk | contribs) |
(→Date format) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
== Date format == | == 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 | + | 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; this is different from the normal [[Unix time|Unix-style timestamps]] that count seconds since 1970. |
+ | |||
+ | In fact, the Chrome bookmark file date format, e.g., the <tt>date_added</tt> field, is in ''microseconds'' since January 1, 1601 (a much earlier epoch than the Unix 1970 date). Note that this only differs from [[Windows FILETIME]] by a factor of 10. See the open-source [http://dev.chromium.org/Home Chromium] source code, and search for <tt>MicrosecondsToFileTime</tt>. Sample conversion code can be found on stackoverflow [http://stackoverflow.com/questions/19074423/how-to-parse-the-date-added-field-in-chrome-bookmarks-file "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 <tt>ADD_DATE</tt> field, is in ''seconds'' since January 1, 1970. | ||
== Source code == | == Source code == | ||
It's possible more info about the format could be gleaned by looking through the open-source [http://dev.chromium.org/Home 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. | It's possible more info about the format could be gleaned by looking through the open-source [http://dev.chromium.org/Home 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. | ||
+ | |||
+ | [[Category:Google]] | ||
+ | [[Category:JSON based file formats]] |
Latest revision as of 17:02, 19 July 2017
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.
[edit] 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 í).
[edit] 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; this is different from the normal Unix-style timestamps that count seconds since 1970.
In fact, the Chrome bookmark file date format, e.g., the date_added field, is in microseconds since January 1, 1601 (a much earlier epoch than the Unix 1970 date). Note that this only differs from Windows FILETIME by a factor of 10. 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.
[edit] 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.