GoPro Timelapse

First Version Published:

A close-up of an action camera filming a serene lake in Bay of Plenty. Stock Photo

Photo by Gabriela Palai: https://www.pexels.com/photo/black-action-camera-690806

gopro_timelapse is short python script I put together to automate a daily recording of a new house being built.

The Plan

My parents were building a new house and were sharing updates by text messaging to the family. Time would fly-by before we would get an update as they had plenty going on. So I decided I would try to make this a little easier on them since I had a GoPro not being used.

Implementation

I did some research and found an unofficial GoPro API by Konrad Iturbe that happened to work with my model. After that I wrote this script, did some tests at home, and it was working. Initially…

Deployment

The GoPro was mounted at an ideal location that provided the best shot and had a nearby power source. Since I will not be there to monitor and this is intended to be completely automated. It was waterproofed with plastic wrap and electrical tape since it was going to be always plugged in. It wasn’t pretty but it did the job.

My GoPro mounted on an outdoor roof beam, powered, wrapped in plastic and electrical
tape.

Within the GoPro’s builtin Wi-Fi range I set up a Raspberry Pi and put this script on a cron timer to run every 5 minutes. This not only allowed remote downloads of the time-lapse videos but also allowed me to debug remotely by ssh to the Raspberry Pi.

Maintenance

Couple of days went by, made some minor tweaks for observability, and everything seemed to be working smooth. Then it suddenly stopped. I had to come onsite, as nothing seemed to work anymore. Videos had trouble downloading, I increased script time for the download. Still didn’t fix it. After some online searching, seems it was common for my camera model’s Wi-Fi broadcast to just shutdown, probably to help conserve battery (which was removed from the camera).

Conclusion

Sadly due to the GoPro randomly shutting down the connection, I had to give up on the project and let my parents continue manual updates of the house progress to the family. This taught me how valuable an open API can-be and has guided my purchasing decisions since. Thankfully for those looking to do something similar with their GoPro, there is an official open API for models HERO9 and later.


Source code: https://github.com/smithcli/gopro_timelapse

Tags: