{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/brave-browser/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/brave-browser/", "feed_url": "https://matoken.org/blog/tag/brave-browser/feed/json/", "language": "ja", "title": "Brave Browser – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "http://matoken.org/blog/?p=2981", "url": "https://matoken.org/blog/2021/02/10/find-the-time-stamp-format-of-google-chrome-chromium-brave-history-and-get-one-days-worth-of-history/", "title": "Google Chrome/Chromium/Brave\u306e\u5c65\u6b74\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u5f62\u5f0f\u3092\u8abf\u3079\u30661\u65e5\u5206\u306e\u5c65\u6b74\u3092\u624b\u306b\u5165\u308c\u308b", "content_html": "
\n

\u305f\u307e\u306b\u4ee5\u524d\u30a6\u30a7\u30d6\u3067\u898b\u305f\u60c5\u5831\u304c\u6b32\u3057\u304f\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff0e\u5c65\u6b74\u306b\u6b8b\u3063\u3066\u3044\u308c\u3070\u3044\u3044\u3051\u3069\u6d88\u3048\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u304b\u3082\uff0e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306e\u30a2\u30af\u30bb\u30b9\u5c65\u6b74\u306e\u30bf\u30a4\u30c8\u30eb\u3068URL\u3060\u3051\u3067\u3082\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u6b8b\u3057\u3066\u304a\u304f\u3068\u4fbf\u5229\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e

\n
\n
\n

\u5c65\u6b74\u306fHistory\u30d5\u30a1\u30a4\u30eb\u3092sqlite3\u3067\u53e9\u304f\u3068\u53d6\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u304c\u3088\u304f\u3042\u308bUNIX time\u3067\u3082\u306a\u304f\u3068\u3066\u3082\u5927\u304d\u306a\u5024\u3067\u3059\uff0e

\n
\n
\n
\n
$ sqlite3 ~/.config/chromium/Default/History \"SELECT \\\"[\\\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \\\"]\\\" FROM urls;\" | jq . | grep timestamp | sort\n -n | tail -1\n    \"timestamp\": 13256542361632384,
\n
\n
\n
\n
UNIX time\u306e\u4f8b
\n
\n
$ date +%s\n1612703645
\n
\n
\n
\n

\u691c\u7d22\u3059\u308b\u3068\u3053\u306e\u3088\u3046\u306a\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e

\n
\n
\n
WebKit/Chrome Timestamp Converter
\n
\n
\n

This timestamp format is used in web browsers such as Apple Safari (WebKit), Google Chrome and Opera (Chromium/Blink). It\u2019s a 64-bit value for microseconds since Jan 1, 1601 00:00 UTC. One microsecond is one-millionth of a second.

\n
\n
\n
\n
\n

\u3053\u306eTimestamp\u306fUTC 1601-01-01\u304b\u3089\u306e\u30de\u30a4\u30af\u30ed\u30bb\u30ab\u30f3\u30c9\u79d2\u3089\u3057\u3044\u3067\u3059\uff0e\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n

\u307e\u305a\u306fUNIX time\u306e1601-01-01\u304b\u3089\u306e\u79d2\u6570\u306b10^6\u3092\u639b\u3051\u3066UNIX time\u3068\u306e\u5dee\u3092\u6c42\u3081\u307e\u3059\uff0e(GNU coreutils\u306edate\u3063\u30661970-01-01\u3088\u308a\u524d\u306e\u6642\u9593\u3082\u8a08\u7b97\u3067\u304d\u308b\u3093\u3060!)

\n
\n
\n
UTC 1601-01-01\u306eUNIX time?\u306b10^6
\n
\n
$ echo \"$( date --utc --date 1601-01-01 +%s ) * 10^6\" | bc\n-11644473600000000
\n
\n
\n
\n

Chrome\u6642\u9593\u3068UNIX time\u306e\u5dee\u3092\u5f15\u3044\u3066UNIX time\u306b\u5909\u63db\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ echo \"( 13256542361632384 -11644473600000000 ) / 1000000\" | bc\n1612068761
\n
\n
\n
\n

UNIX time\u3092\u4eba\u9593\u304c\u8aad\u3081\u308b\u3088\u3046\u306b\u5909\u63db

\n
\n
\n
\n
$ date --date=\"@1612068761\"\nSun 31 Jan 2021 01:52:41 PM JST
\n
\n
\n
\n

1\u884c\u306b\u307e\u3068\u3081\u308b

\n
\n
\n
\n
$ date --date=\"@`echo \"(13256542361632384/10^6-11644473600)\"|bc`\"\nSun 31 Jan 2021 01:52:41 PM JST
\n
\n
\n
\n

\u9006\u306b\u4eca\u306e\u6642\u9593\u3092Chrome\u306etimestamp\u306b\u5909\u63db

\n
\n
\n
\n
$ echo \"(`date +%s`+11644473600)*10^6\" | bc\n13257218080000000
\n
\n
\n
\n

1\u65e5\u524d\u306eChrome\u6642\u9593

\n
\n
\n
\n
$ echo \"(`date -d '1day ago' +%s`+11644473600)*10^6\" | bc\n13257336413000000
\n
\n
\n
\n

\"chrometime\"/

\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u30671\u65e5\u5206Chrome/Chromium\u306eHistory\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u53d6\u5f97\u3067\u304d\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ sqlite3 /tmp/History \"SELECT \\\"[\\\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \\\"]\\\" FROM urls WHERE last_visit_time >= $(((`date -d '1 day ago' +%s` +11644473600)*1000000));\"
\n
\n
\n
\n\n\n\n\n\n\n\n
\n
Note
\n
\n\u8a72\u5f53\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5229\u7528\u4e2d\u306e\u5834\u5408\u3053\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e
\nError: database is locked
\n\u30d6\u30e9\u30a6\u30b6\u3092\u7d42\u4e86\u3059\u308b\u304b\uff0cHistory\u30d5\u30a1\u30a4\u30eb\u3092\u9069\u5f53\u306a\u5834\u6240\u306b\u30b3\u30d4\u30fc\u3057\u3066\u305d\u3061\u3089\u3092\u4f7f\u3044\u307e\u3059\uff0e
\n$ cp /home/matoken/.config/google-chrome/Default/History /tmp/
\n
\n
\n

History \u30d5\u30a1\u30a4\u30eb\u306f\u65e2\u5b9a\u5024\u3067\u306f\u3053\u306e\u8fba\u306b\u3042\u308a\u307e\u3059\uff0e

\n
\n
\n
\n
Chromium
\n
~/.config/chromium/Default/History
\n
Google Chrome
\n
~/.config/google-chrome/Default/History
\n
Brave Brouser
\n
/.config/BraveSoftware/Brave-Browser/Default/History
\n
\n
\n
\n

\u65e2\u5b9a\u5024\u4ee5\u5916\u306e\u5834\u5408\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u691c\u7d22? ~/.config \u4ee5\u5916\u306b\u3082\u3067\u304d\u308b\u3051\u3069\u305d\u306e\u5834\u5408\u306f\u30d1\u30b9\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u3068\u601d\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ find ~/.config/chromium/ ~/.config/google-chrome/ ~/.config/BraveSoftware/Brave-Browser -name History -print
\n
\n
\n
\n

Opera\u306f\u8cb7\u53ce\u3055\u308c\u3066\u304b\u3089\u4f7f\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u3059\u304c\uff0c\u53e4\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u898b\u308b\u3068\u3053\u306e\u8fba\u306e\u3088\u3046\u3067\u3059\uff0e\u73fe\u5728\u306f\u5909\u308f\u3063\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\uff0e

\n
\n
\n
\n
Opera
\n
~/.config/opera/History
\n
\n
\n
\n

Safari\u306f\u74b0\u5883\u304c\u306a\u3044\u306e\u3067\u672a\u78ba\u8a8d\u3067\u3059\u304cArchiveBox\u306escript\u3092\u898b\u308b\u3068\u65e2\u5b9a\u5024\u306f\u6050\u3089\u304f\u3053\u306e\u3042\u305f\u308a\u3067\u3059\uff0e

\n
\n
\n
\n
Safari
\n
~/Library/Safari/History.db
\n
\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W bc google-chrome-stable chromium brave-browser coreutils sqlite3\nbc      1.07.1-2+b2\nbrave-browser   1.19.92\nchromium        88.0.4324.146-1\ncoreutils       8.32-4+b1\ngoogle-chrome-stable    88.0.4324.150-1\nsqlite3 3.34.1-1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux bullseye/sid\nRelease:        unstable\n$ uname -m\nx86_64
\n
\n
\n

\n", "content_text": "\u305f\u307e\u306b\u4ee5\u524d\u30a6\u30a7\u30d6\u3067\u898b\u305f\u60c5\u5831\u304c\u6b32\u3057\u304f\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\uff0e\u5c65\u6b74\u306b\u6b8b\u3063\u3066\u3044\u308c\u3070\u3044\u3044\u3051\u3069\u6d88\u3048\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u304b\u3082\uff0e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306e\u30a2\u30af\u30bb\u30b9\u5c65\u6b74\u306e\u30bf\u30a4\u30c8\u30eb\u3068URL\u3060\u3051\u3067\u3082\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u6b8b\u3057\u3066\u304a\u304f\u3068\u4fbf\u5229\u304b\u3082\u3057\u308c\u307e\u305b\u3093\uff0e\n\n\n\u5c65\u6b74\u306fHistory\u30d5\u30a1\u30a4\u30eb\u3092sqlite3\u3067\u53e9\u304f\u3068\u53d6\u308c\u308b\u306e\u3067\u3059\u304c\uff0c\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u304c\u3088\u304f\u3042\u308bUNIX time\u3067\u3082\u306a\u304f\u3068\u3066\u3082\u5927\u304d\u306a\u5024\u3067\u3059\uff0e\n\n\n\n$ sqlite3 ~/.config/chromium/Default/History \"SELECT \\\"[\\\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \\\"]\\\" FROM urls;\" | jq . | grep timestamp | sort\n -n | tail -1\n \"timestamp\": 13256542361632384,\n\n\n\nUNIX time\u306e\u4f8b\n\n$ date +%s\n1612703645\n\n\n\n\u691c\u7d22\u3059\u308b\u3068\u3053\u306e\u3088\u3046\u306a\u30da\u30fc\u30b8\u3092\u898b\u3064\u3051\u307e\u3057\u305f\uff0e\n\n\nWebKit/Chrome Timestamp Converter\n\n\nThis timestamp format is used in web browsers such as Apple Safari (WebKit), Google Chrome and Opera (Chromium/Blink). It\u2019s a 64-bit value for microseconds since Jan 1, 1601 00:00 UTC. One microsecond is one-millionth of a second.\n\n\n\n\n\u3053\u306eTimestamp\u306fUTC 1601-01-01\u304b\u3089\u306e\u30de\u30a4\u30af\u30ed\u30bb\u30ab\u30f3\u30c9\u79d2\u3089\u3057\u3044\u3067\u3059\uff0e\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\u307e\u305a\u306fUNIX time\u306e1601-01-01\u304b\u3089\u306e\u79d2\u6570\u306b10^6\u3092\u639b\u3051\u3066UNIX time\u3068\u306e\u5dee\u3092\u6c42\u3081\u307e\u3059\uff0e(GNU coreutils\u306edate\u3063\u30661970-01-01\u3088\u308a\u524d\u306e\u6642\u9593\u3082\u8a08\u7b97\u3067\u304d\u308b\u3093\u3060!)\n\n\nUTC 1601-01-01\u306eUNIX time?\u306b10^6\n\n$ echo \"$( date --utc --date 1601-01-01 +%s ) * 10^6\" | bc\n-11644473600000000\n\n\n\nChrome\u6642\u9593\u3068UNIX time\u306e\u5dee\u3092\u5f15\u3044\u3066UNIX time\u306b\u5909\u63db\u3057\u307e\u3059\uff0e\n\n\n\n$ echo \"( 13256542361632384 -11644473600000000 ) / 1000000\" | bc\n1612068761\n\n\n\nUNIX time\u3092\u4eba\u9593\u304c\u8aad\u3081\u308b\u3088\u3046\u306b\u5909\u63db\n\n\n\n$ date --date=\"@1612068761\"\nSun 31 Jan 2021 01:52:41 PM JST\n\n\n\n1\u884c\u306b\u307e\u3068\u3081\u308b\n\n\n\n$ date --date=\"@`echo \"(13256542361632384/10^6-11644473600)\"|bc`\"\nSun 31 Jan 2021 01:52:41 PM JST\n\n\n\n\u9006\u306b\u4eca\u306e\u6642\u9593\u3092Chrome\u306etimestamp\u306b\u5909\u63db\n\n\n\n$ echo \"(`date +%s`+11644473600)*10^6\" | bc\n13257218080000000\n\n\n\n1\u65e5\u524d\u306eChrome\u6642\u9593\n\n\n\n$ echo \"(`date -d '1day ago' +%s`+11644473600)*10^6\" | bc\n13257336413000000\n\n\n\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u30671\u65e5\u5206Chrome/Chromium\u306eHistory\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u53d6\u5f97\u3067\u304d\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ sqlite3 /tmp/History \"SELECT \\\"[\\\" || group_concat(json_object('timestamp', last_visit_time, title, url)) || \\\"]\\\" FROM urls WHERE last_visit_time >= $(((`date -d '1 day ago' +%s` +11644473600)*1000000));\"\n\n\n\n\n\n\n\nNote\n\n\n\u8a72\u5f53\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5229\u7528\u4e2d\u306e\u5834\u5408\u3053\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e\nError: database is locked\n\u30d6\u30e9\u30a6\u30b6\u3092\u7d42\u4e86\u3059\u308b\u304b\uff0cHistory\u30d5\u30a1\u30a4\u30eb\u3092\u9069\u5f53\u306a\u5834\u6240\u306b\u30b3\u30d4\u30fc\u3057\u3066\u305d\u3061\u3089\u3092\u4f7f\u3044\u307e\u3059\uff0e\n$ cp /home/matoken/.config/google-chrome/Default/History /tmp/\n\n\n\n\n\nHistory \u30d5\u30a1\u30a4\u30eb\u306f\u65e2\u5b9a\u5024\u3067\u306f\u3053\u306e\u8fba\u306b\u3042\u308a\u307e\u3059\uff0e\n\n\n\nChromium\n~/.config/chromium/Default/History\nGoogle Chrome\n~/.config/google-chrome/Default/History\nBrave Brouser\n/.config/BraveSoftware/Brave-Browser/Default/History\n\n\n\n\u65e2\u5b9a\u5024\u4ee5\u5916\u306e\u5834\u5408\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u691c\u7d22? ~/.config \u4ee5\u5916\u306b\u3082\u3067\u304d\u308b\u3051\u3069\u305d\u306e\u5834\u5408\u306f\u30d1\u30b9\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u3068\u601d\u3044\u307e\u3059\uff0e\n\n\n\n$ find ~/.config/chromium/ ~/.config/google-chrome/ ~/.config/BraveSoftware/Brave-Browser -name History -print\n\n\n\nOpera\u306f\u8cb7\u53ce\u3055\u308c\u3066\u304b\u3089\u4f7f\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u3059\u304c\uff0c\u53e4\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u898b\u308b\u3068\u3053\u306e\u8fba\u306e\u3088\u3046\u3067\u3059\uff0e\u73fe\u5728\u306f\u5909\u308f\u3063\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\uff0e\n\n\n\nOpera\n~/.config/opera/History\n\n\n\nSafari\u306f\u74b0\u5883\u304c\u306a\u3044\u306e\u3067\u672a\u78ba\u8a8d\u3067\u3059\u304cArchiveBox\u306escript\u3092\u898b\u308b\u3068\u65e2\u5b9a\u5024\u306f\u6050\u3089\u304f\u3053\u306e\u3042\u305f\u308a\u3067\u3059\uff0e\n\n\n\nSafari\n~/Library/Safari/History.db\n\n\n\n\u74b0\u5883\n\n$ dpkg-query -W bc google-chrome-stable chromium brave-browser coreutils sqlite3\nbc 1.07.1-2+b2\nbrave-browser 1.19.92\nchromium 88.0.4324.146-1\ncoreutils 8.32-4+b1\ngoogle-chrome-stable 88.0.4324.150-1\nsqlite3 3.34.1-1\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -m\nx86_64", "date_published": "2021-02-10T18:44:20+09:00", "date_modified": "2021-02-11T04:24:39+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Brave Browser", "Chromium", "Google Chrome", "timestamp", "Debian", "Linux", "sid" ] } ] }