A year from the same spot

A year from the same spot

34 days between last September and this June. Golden grass, first snow, the long gray weeks, the green coming back.

There's a little rise on my regular walk where the whole Front Range opens up. The Flatirons, the valley, the houses down below. I stop there almost every time and take the same photo. I never planned it as a project. It just kept happening, and after a year my phone was full of one view wearing different weather.

I wanted to see them all at once, so I turned them into a timelapse.

0:00
/0:34

That's 34 days between last September and this June. Golden grass, first snow, the long gray weeks, the green coming back.

How it was made

I didn't want to dig through my photo library by hand, so I sat down with Claude Code, planned out a small Python script, and had it write the thing. The whole pipeline is one file:

  • exiftool pulls the GPS coordinates out of one reference photo
  • osxphotos searches my Apple Photos library for every shot taken within 30 meters of that spot over the past year. It found 65. The library is only read, never touched.
  • The script keeps the earliest photo from each day, which left 34
  • ImageMagick squares up the sizes and orientation
  • ffmpeg chains crossfades between the stills and spits out an MP4, plus a GIF fallback

Now it's one command:

uv run spotlapse.py --ref photo.jpg

Two things bit me along the way. The first render only showed two photos because the crossfade offsets were scheduled past the end of the video, so ffmpeg quietly gave up after the first fade. One line fixed it. And the part that took the longest had nothing to do with code: convincing macOS to let anything read the Photos database at all. Full Disk Access, quit, reopen, repeat.

The script is up on GitHub as spotlapse if you have a spot of your own. Point it at one photo and it finds the rest.

Next September this becomes a two-year loop.