<p>how can i create an application to read all my browser (firefox) history?
i noticed that i have in </p>

<p>C:\Users\user.name\AppData\Local\Mozilla\Firefox\Profiles\646vwtnu.default</p>

<p>what looks like  a sqlite database (urlclassifier3.sqlite) but i don't know if its really what is used to store de history information.
i searched for examples on how to do this but didn't find anything.</p>

<p>ps: although the title is similar i believe this question is not the same as <a href="https://stackoverflow.com/questions/48805/how-do-you-access-browser-history">"How do you access browser history?"</a></p>

[{'answer_id': 54074, 'author': 'hasseg', 'author_id': 4111, 'author_profile': 'https://Stackoverflow.com/users/4111', 'pm_score': 4, 'selected': True, 'text': '<p>I believe <code>places.sqlite</code> is the one you should be looking into for history (Firefox 3). Below are a couple of Mozilla wiki entries that have some info on the subject.</p>\n\n<ul>\n<li><a href="https://wiki.mozilla.org/Mozilla2:Unified_Storage" rel="noreferrer">Mozilla 2: Unified Storage</a></li>\n<li><a href="https://wiki.mozilla.org/Browser_History" rel="noreferrer">Browser History</a> <em>(see especially section "Database Design" here)</em></li>\n</ul>\n\n<p>In earlier versions of Firefox they stored history in a file called <code>history.dat</code>, which was encoded in a format called "Mork". <a href="http://www.jwz.org/hacks/mork.pl" rel="noreferrer">This perl script by Jamie Zawinski</a> can be used to parse Mork files.</p>\n'}, {'answer_id': 56201, 'author': 'Vitor Silva', 'author_id': 1842864, 'author_profile': 'https://Stackoverflow.com/users/1842864', 'pm_score': 2, 'selected': False, 'text': '<p>I also found the following links to be interesting:</p>\n\n<ul>\n<li><a href="http://www.forensicsblog.net/?p=5" rel="nofollow noreferrer">Literally make history with Firefox 3</a>    </li>\n<li><a href="http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/" rel="nofollow noreferrer">SQLite on .NET - Get up and running in 3 minutes.</a></li>\n<li><a href="https://addons.mozilla.org/en-US/firefox/addon/5817" rel="nofollow noreferrer">SQLite Manager Firefox Addon</a></li>\n</ul>\n\n<p>After adding a reference to System.Data.Sqlite in my .Net project, all I had to do to create a connection was:</p>\n\n<pre><code>cnn = New SQLiteConnection("data source=c:\\Users\\user.name\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\646vwtnu.default\\places.sqlite")\ncnn.Open()\n</code></pre>\n\n<p>I had one minor glitch has the .net sqlite provider does not support sqlite3_enable_shared_cache which I believe is preventing me to open the places.sqlite database while having firefox running (see <a href="http://sqlite.phxsoftware.com/forums/p/1357/5855.aspx#5855" rel="nofollow noreferrer">Support for sqlite3_enable_shared_cache)</a></p>\n'}, {'answer_id': 1247713, 'author': 'Pierre-Antoine LaFayette', 'author_id': 135360, 'author_profile': 'https://Stackoverflow.com/users/135360', 'pm_score': 1, 'selected': False, 'text': '<p>The <a href="https://addons.mozilla.org/en-US/firefox/addon/5817" rel="nofollow noreferrer">Firefox SQLite Manager Addon</a> is a great tool. If you wish to learn about the Firefox Places design and DB schema visit <a href="https://developer.mozilla.org/en/Places" rel="nofollow noreferrer">Mozilla Places</a>.</p>\n'}, {'answer_id': 58235057, 'author': 'amirouche', 'author_id': 140837, 'author_profile': 'https://Stackoverflow.com/users/140837', 'pm_score': 1, 'selected': False, 'text': '<p>Indeed the history is in <code>places.sqlite</code> but the database file is locked. So you need to make a copy to be able to access it:</p>\n\n<pre class="lang-sh prettyprint-override"><code>$ pwd\n/home/amirouche/.mozilla/firefox/p4x432.default\n$ ls -l *sqlite\n-rw-r--r-- 1 amirouche amirouche   229376 Oct  4 12:39 content-prefs.sqlite\n-rw-r--r-- 1 amirouche amirouche  1572864 Oct  4 12:51 cookies.sqlite\n-rw-r--r-- 1 amirouche amirouche 40501248 Oct  4 12:47 favicons.sqlite\n-rw-r--r-- 1 amirouche amirouche   294912 Oct  4 12:46 formhistory.sqlite\n-rw-r--r-- 1 amirouche amirouche   196608 Oct  4 12:50 permissions.sqlite\n-rw-r--r-- 1 amirouche amirouche 36700160 Oct  4 12:50 places.sqlite\n-rw-r--r-- 1 amirouche amirouche    65536 Oct  4 11:50 protections.sqlite\n-rw-r--r-- 1 amirouche amirouche      512 Jul 24 23:41 storage.sqlite\n-rw-r--r-- 1 amirouche amirouche   131072 Oct  4 12:05 storage-sync.sqlite\n-rw-r--r-- 1 amirouche amirouche 15892480 Oct  4 12:51 webappsstore.sqlite\n\n$ sqlite3 places.sqlite \nSQLite version 3.27.2 2019-02-25 16:06:06\nEnter ".help" for usage hints.\nsqlite&gt; .schema\nError: database is locked\nsqlite&gt; \n\n$ cp places.sqlite places.backup.sqlite\n\n$ sqlite3 places.backup.sqlite \nSQLite version 3.27.2 2019-02-25 16:06:06\nEnter ".help" for usage hints.\nsqlite&gt; .schema\n</code></pre>\n\n<p>Here is the output, one interesting table is <code>moz_places</code> on line 2:</p>\n\n<pre><code>CREATE TABLE moz_origins ( id INTEGER PRIMARY KEY, prefix TEXT NOT NULL, host TEXT NOT NULL, frecency INTEGER NOT NULL, UNIQUE (prefix, host) );\nCREATE TABLE moz_places (   id INTEGER PRIMARY KEY, url LONGVARCHAR, title LONGVARCHAR, rev_host LONGVARCHAR, visit_count INTEGER DEFAULT 0, hidden INTEGER DEFAULT 0 NOT NULL, typed INTEGER DEFAULT 0 NOT NULL, frecency INTEGER DEFAULT -1 NOT NULL, last_visit_date INTEGER , guid TEXT, foreign_count INTEGER DEFAULT 0 NOT NULL, url_hash INTEGER DEFAULT 0 NOT NULL , description TEXT, preview_image_url TEXT, origin_id INTEGER REFERENCES moz_origins(id));\nCREATE TABLE moz_historyvisits (  id INTEGER PRIMARY KEY, from_visit INTEGER, place_id INTEGER, visit_date INTEGER, visit_type INTEGER, session INTEGER);\nCREATE TABLE moz_inputhistory (  place_id INTEGER NOT NULL, input LONGVARCHAR NOT NULL, use_count INTEGER, PRIMARY KEY (place_id, input));\nCREATE TABLE moz_bookmarks (  id INTEGER PRIMARY KEY, type INTEGER, fk INTEGER DEFAULT NULL, parent INTEGER, position INTEGER, title LONGVARCHAR, keyword_id INTEGER, folder_type TEXT, dateAdded INTEGER, lastModified INTEGER, guid TEXT, syncStatus INTEGER NOT NULL DEFAULT 0, syncChangeCounter INTEGER NOT NULL DEFAULT 1);\nCREATE TABLE moz_bookmarks_deleted (  guid TEXT PRIMARY KEY, dateRemoved INTEGER NOT NULL DEFAULT 0);\nCREATE TABLE moz_keywords (  id INTEGER PRIMARY KEY AUTOINCREMENT, keyword TEXT UNIQUE, place_id INTEGER, post_data TEXT);\nCREATE TABLE sqlite_sequence(name,seq);\nCREATE TABLE moz_anno_attributes (  id INTEGER PRIMARY KEY, name VARCHAR(32) UNIQUE NOT NULL);\nCREATE TABLE moz_annos (  id INTEGER PRIMARY KEY, place_id INTEGER NOT NULL, anno_attribute_id INTEGER, content LONGVARCHAR, flags INTEGER DEFAULT 0, expiration INTEGER DEFAULT 0, type INTEGER DEFAULT 0, dateAdded INTEGER DEFAULT 0, lastModified INTEGER DEFAULT 0);\nCREATE TABLE moz_items_annos (  id INTEGER PRIMARY KEY, item_id INTEGER NOT NULL, anno_attribute_id INTEGER, content LONGVARCHAR, flags INTEGER DEFAULT 0, expiration INTEGER DEFAULT 0, type INTEGER DEFAULT 0, dateAdded INTEGER DEFAULT 0, lastModified INTEGER DEFAULT 0);\nCREATE TABLE moz_meta (key TEXT PRIMARY KEY, value NOT NULL) WITHOUT ROWID ;\nCREATE TABLE sqlite_stat1(tbl,idx,stat);\nCREATE INDEX moz_places_url_hashindex ON moz_places (url_hash);\nCREATE INDEX moz_places_hostindex ON moz_places (rev_host);\nCREATE INDEX moz_places_visitcount ON moz_places (visit_count);\nCREATE INDEX moz_places_frecencyindex ON moz_places (frecency);\nCREATE INDEX moz_places_lastvisitdateindex ON moz_places (last_visit_date);\nCREATE UNIQUE INDEX moz_places_guid_uniqueindex ON moz_places (guid);\nCREATE INDEX moz_places_originidindex ON moz_places (origin_id);\nCREATE INDEX moz_historyvisits_placedateindex ON moz_historyvisits (place_id, visit_date);\nCREATE INDEX moz_historyvisits_fromindex ON moz_historyvisits (from_visit);\nCREATE INDEX moz_historyvisits_dateindex ON moz_historyvisits (visit_date);\nCREATE INDEX moz_bookmarks_itemindex ON moz_bookmarks (fk, type);\nCREATE INDEX moz_bookmarks_parentindex ON moz_bookmarks (parent, position);\nCREATE INDEX moz_bookmarks_itemlastmodifiedindex ON moz_bookmarks (fk, lastModified);\nCREATE INDEX moz_bookmarks_dateaddedindex ON moz_bookmarks (dateAdded);\nCREATE UNIQUE INDEX moz_bookmarks_guid_uniqueindex ON moz_bookmarks (guid);\nCREATE UNIQUE INDEX moz_keywords_placepostdata_uniqueindex ON moz_keywords (place_id, post_data);\nCREATE UNIQUE INDEX moz_annos_placeattributeindex ON moz_annos (place_id, anno_attribute_id);\nCREATE UNIQUE INDEX moz_items_annos_itemattributeindex ON moz_items_annos (item_id, anno_attribute_id);\n</code></pre>\n'}]
['https://Stackoverflow.com/questions/54036', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1842864/']