TL;DR: Use this script. Non-Linux users, feed it the path to a sessionstore JSON file. Try
--tiddlywiki for more copy-pastable output.
Because of the relatively high UX overhead of things like Firefox’s built-in bookmarking or Delicious.com, I recently found myself with over 1000 tabs in my Firefox tab groups.
Lazy-loading after a browser restart or not, this was very far from ideal so I whipped up a quick little script which contains not only the code I used to dump my
sessionstore.js, but also the code I used as an aid to reverse-engineering the tab groups part of it since, as far as I can tell, the Mozilla guys didn’t bother to document that.
The code’s definitely not pretty and I can’t guarantee the
--check-schema parts still work, but the dumping works perfectly and I didn’t want to spend too much time on it because I’ve heard Mozilla wants to move away from JSON for saved sessions in favour of a custom binary format specifically designed to help them minimize the amount of time internal data structures need to stay locked in order to write them out on a potentially memory-constrained device. (Remember, Firefox on Desktop shares code with Firefox OS.)
It was originally developed to operate on
sessionstore.js but, between when I started developing it and now, things changed a bit so, now, it reads
It can take one or more paths but, if you don’t provide one, it’ll assume a Linux desktop and try to export every tab group from every Firefox profile in your user account. As written, it always dumps to the
tabs.html file in the current working directory.
Normally, it produces a nice-looking HTML output, complete with favicons for list bullets but, If you pass the
--tiddlywiki option, it’ll generate a nice compromise that can be copy-pasted into TiddlyWiki. (Including hidden
!!! prefixes for the headers so that you can copy-paste a bunch of groups in one go.)