Delicious Logo

In the early years of the Internet, there was a social bookmarking service known as Del.icio.us, or “Delicious.” It allowed users to create and tag bookmarks. It had a Firefox extension that could synchronize bookmarks and tags between a user’s various web browsers and computers. Sadly, the browser extension stopped working as Firefox deprecated their old extension API and Delicious traded hands between various companies. My home directory is old enough that I still had the disabled Delicious extension data sitting within my Firefox profile. The data is in a standard sqlite3 format, and I wrote a Python script that extracts those old bookmarks and formats them as HTML.

Delicious Firefox Extension

I no longer use Firefox. A little over a year ago, I switched to Librewolf, a privacy aware fork of Firefox. Ignoring how tragic it is that we need a forked version of Firefox to reduce tracking, my original Firefox profile directory has remained consistent for years. The old Delicious data file can be found in ~/.mozilla/firefox/<profile ID>.default/ybookmarks.sqlite on Linux.

Searching for ybookmarks.sqlite file in the Mozilla profile directory
Searching for ybookmarks.sqlite file in the Mozilla profile directory

Un.Delicious

If you still have this old bookmark synchronization file in your Firefox profile directory, you can download my Python script from source control. The script only depends on the sqlite3 connector for Python, which you can install via your package manager or in a Python virtual environment. Simply copy the ybookmarks.sqlite into the same directory of the script and run it.

git clone https://gitlab.com/djsumdog/un.delicious
cd un.delicious
cp ~/.mozilla/firefox/xxxxxxxx.default/ybookmarks.sqlite .
pythhon3 un.delicious.py

The script will generate several HTML files in the output directory. The index.html will display all bookmarks alphabetically. date.html will have bookmarks sorted by their creation date. Clicking on any tag will load tags.html, which groups all bookmarks by tag. A bookmarks.json file is also generated if you want a structured format to use elsewhere.

un.delicious generated output
un.delicious generated output

When running this script, I discovered a significant number of tags had no equivalent bookmark association. I suspect this is due to a bug or synchronization issue towards the end of the Delicious service. I still recovered 435 links, but it appears I may have lost up to 1135.

...
...
Could not find bookmark 652 to add tag photoshop
Could not find bookmark 653 to add tag imported
Could not find bookmark 653 to add tag programming
Could not find bookmark 654 to add tag imported
Could not find bookmark 654 to add tag programming
Orphan tag entries 1135

Linkding: A Modern Replacement

Whenever you use someone else’s service, you always risk losing everything you save to the cloud. After all, cloud services are really just someone else’s computer. For the past few years, I’ve been using an open source bookmarking tool called Linkding. It has extensions for popular web browsers, and allows me to save and tag bookmarks. Best of all, it’s open source, and I host my own bookmark server. I keep regular backups, and have control over my bookmark data without having to depend on an external service, or reverse engineering the sqlite synchronization file from an ancient web browser plugin.

Linkding Self-hosted Bookmark Tool
Linkding Self-hosted Bookmark Tool

The End of the Internet

This is a small project I’ve been meaning to tackle for a while. Casually clicking around the various links, I’m surprised how many of them still work or redirect to a newer format of their original content. Still, a considerable number of the links either result in a 404, timeout or redirect to a domain-for-sale parking page. Some of these old links can be found on Internet archive sites, and others are so old they’ve been lost to time. It’s an interesting trip through nostalgia, to a time when the Internet felt vast, independent and endless.