While reviving old website templates, I realized something else needed rescuing: my Flickr archive.
I’ve always believed that content hosted on third-party platforms isn’t truly yours unless you can export it. If a service changes terms, limits access, or disappears, your history can vanish overnight. I’ve seen that happen before — sometimes with only a brief window to retrieve what was created.
Years ago, I exported everything from Flickr: photos, albums, tags, comments, notes — the full archive. It sat quietly on hard drives and cloud storage. Preserved, but not accessible. Meanwhile, Flickr’s policies evolved, and my account was eventually reduced to just 1,000 visible photos. The rest effectively disappeared from the public web.
So while rebuilding my early websites, it felt right to restore the photos too.
“It Should Be Simple…”
As a programmer, importing data sounds straightforward.
It never is.
Once you regain control of your data, the possibilities multiply. Solve one problem and three more ideas appear behind it. What started as a basic import turned into a full reconstruction project:
- Identify every photo and its Flickr ID
- Match IDs to files using more than filenames alone
- Detect missing IDs and unmatched files
- Manually reconcile edge cases
- Generate a WordPress post for each photo
- Recreate albums and groups as categories
- Rebuild tags automatically
- Set each image as its post’s featured image
- Generate excerpts from descriptions
- Display comments and Flickr-style image notes
- Extract EXIF data (camera, software, GPS)
- Convert EXIF fields into searchable tags
- Render maps for geotagged photos
- Serve a medium image while linking to full resolution
And because this archive deserves to be accessible, only import images that were originally public
Adding AI — Carefully
The newest layer is AI-assisted enrichment.
A script now resizes each image and sends it for analysis to generate:
- Caption
- Alt text
- Long description
- Suggested tags
There are 2,616 images in total. Not all will be published, but every one will exist in a searchable JSON index, making the archive far more discoverable than it ever was on Flickr.
There is a cost to AI-assistance, so I added additional logic to reduce costs.
- Resize images to 1024px max
- Reduce JPEG quality to 82% or less
- Optimize processing costs to fractions of a cent per image
- Resume safely if the script stops mid-process
- Handle rate limiting and API errors gracefully
The goal isn’t automation for its own sake. It’s accessibility. Searchability. Longevity.
What’s Left
Once the AI pass completes, I’m nearly ready to publish at scale.
The remaining work:
- Properly rendering maps for GPS-tagged images
- Overlaying Flickr-style notes
- Adding camera make/model and software as structured tags
After that, the archive won’t just be backed up.
It will be alive.
This isn’t just about importing photos. It’s about restoring authorship.
About turning exported data into a living, navigable history.
About making sure that what I built — and captured — stays mine.
