I’m nearly finished with the Flickr migration script that pulls my archived photos into the blog. The layout is cleaner now, and I’ve converted most of the legacy HTML into Gutenberg blocks.
While processing comments, I discovered that the archived data only stored NSIDs (Flickr’s user IDs) — no display names. I could construct profile links from the IDs, but I still needed readable names for attribution.
Flickr provides display names through its API, but that requires an API key. When I checked my account, I found an unfamiliar key already active. I disabled it, attempted to generate a new one, and immediately hit a restriction: free accounts can’t create new API keys due to abuse prevention. So I re-enabled the original key, copied the secret, and tested it.
It worked.
Within minutes, I had most of the display names populated. Deleted accounts return nothing through the API, so I manually referenced my original Flickr pages to recover those names.
Maps
I also got Jetpack maps working. This part has mostly been about understanding how Gutenberg blocks function internally. Each block stores a stringified JSON object inside a wp:block comment, and the same attributes are mirrored as data-* properties on the rendered div. Even nested objects and arrays are stringified again when assigned to data attributes.
Exif metadata is now displayed as well — camera model, exposure settings, shooting conditions, timestamps, and software used.
I’m very close to completion. I’ve removed all test posts and images. The final step is optimizing file size.
The image archive is 1.6 GB. I already resized the images while running AI-based identification (about $6 for 2,618 images). Now I need to do it again and fine-tune compression. I generally cap images at 1024px on the longest side, then reduce quality until each lands around 100 KB.
At that target:
- 2,600 images ≈ 260 MB
- Skipping private and “family only” images reduces the set to about 1,600 images ≈ 160 MB
That puts the archive at a much more sustainable size without sacrificing usability.
I’m almost there.
