Rescuing a blog that died in 2013
Every importer here reads an export file. That works right up until the platform is gone — and then there is no export to ask for, no admin to log into, and no account to recover. Posterous shut down in 2013. Blog.cz is gone. Your host is next, eventually.
For those blogs the twentieth import source is the Internet Archive.
Feed mode: what the crawler kept
The Archive did something useful without meaning to. For years it crawled blogs' RSS feeds — over and over, every few weeks, whenever a crawler happened past. Each capture is a snapshot of the last ten or twenty posts at that moment. Line them up oldest first and the overlaps reconstruct a history nobody saved.
That is what the importer does: reads the CDX index for the feed's address, deduplicates by digest so a hundred identical captures cost one fetch, pulls the original bytes through the id_ endpoint so the Archive's own toolbar never lands in your posts, and merges the overlapping windows the same way a re-import merges anything else.
Images come back through the same time machine.
Verified by rescuing posts out of a Posterous blog that has been dead for thirteen years.
Page mode: when there was never a feed
Plenty of blogs the Archive crawled had their feed missed entirely. Those fall through to page mode: every archived post page, newest capture of each.
The hard part is that an archived page is just HTML from an era with no conventions. So platform packs say which paths are posts and how that platform's markup spells a title, a date and a body. Blog.cz ships built in — /YYMM/slug addresses, the article div, Czech long-form dates, and the windows-1250 encodings of the period converted on the way in. B2evolution ships too, built from a real 2008 skin rather than from documentation: the stock bText template that skins almost never replaced, h3.bTitle titles, tags behind their localized label, and the two-digit y/m/d dates read in the order the template source says — which no rendered page could have told you.
Without a pack, POST_PATTERN covers the shape by hand. With neither, the run refuses and prints sample archived paths to build a pattern from, rather than guessing.
What it will not pretend
This is the part I care about most, because a rescue tool that quietly invents things is worse than none.
What the crawler never met stays lost, and the run says so. Unreadable captures are counted. Pages that can only be dated by when they were captured are counted separately, not silently backdated. And a missing image — which the Archive serves as an HTML error page with a cheerful 200 — is caught by failing to measure as an image, counted as lost, rather than saved as a broken file that looks fine in a listing.
A busy Archive is waited out rather than read as a blog that was never there.
What you get back
Posts, with their dates, at permanent addresses, with whatever images survived, tagged with their origin, in a folder you own. Not a screenshot, not a PDF of a page — the same JSON files every other post on your site is made of, editable, searchable, exportable again.
The Archive kept a copy of your blog because it keeps a copy of everything. This just reads it back into something you can use.

Comments