A Timelapse of Timelapse
Timelapse is a little open-source screen recorder for macOS. It takes a screenshot every second and creates a movie in the end.
To celebrate its unlikely 1.0 release today, I present here a "timelapse" of this project's journey. It just took ten years to get here.
To be honest, I don't remember why I initially wrote the tool. I must have had a personal need for a screen recorder, I guess...
In May 2011, when I started the project, I was doing my Masters Degree in Computer Science. I might have needed the tool for University; most likely, however, I was just trying to find an excuse for not working on an assignment.
During that time, I wrote a lot of tools like that. Mainly to scratch a personal itch, learn a new programming language, or just have fun.
Among them are tools like a random sandwich generator for Subway (the American fast-food chain), DrawRoom, a keyboard-driven drawing app inspired by WriteRoom, and the obligatory CMS software, that I sold to clients. Surprisingly, none of them were a great success.
What I do know for sure is that I was unhappy with all existing screen recorders. They could roughly be categorized into these three groups:
- Proprietary solutions that cost money or could call home.
- Tools that didn't work on macOS.
- Small, fragile, one-off scripts that people passed around in forums or as Github gists. They rarely worked as advertised.
Among the remaining tools were none that provided any timelapse functionality; so I set out to write my own.
This all sounds very epic, but in reality, I worked on it for a day. After five heroic commits on May 11, 2011, it sat there, idle, for seven years...
A lot of time elapsed before anything exciting happened.
In January '18, seemingly out of nowhere, the first user filed a bug report. It was titled hung when creating the avi 😱. Turns out that a game developer from Canada, juul1a, was trying to use the tool to track her progress on an indie game — how cool is that?
To help her out, I decided to do some general cleanup, finally write down some instructions on how to even use the program, add a
requirements.txt, and port the tool from mencoder to ffmpeg.
After that, timelapse was ready for prime-time. 🎬 Here is some live action from her videos featuring timelapses:
At that point, the tool was still very wobbly and could only be used from the commandline, but I began to see some potential for building a proper app from it; I just never found the time.
In October '18, I decided to ask for support during Hacktoberfest. I created a few tickets and labeled them with
hacktoberfest to try and find contributors.
And then, I waited.
First, Shreya V Prabhu fixed an issue where a new recording was overwriting the previous one by adding a timestamp to the video name. Then Abner Campanha and Shane Creedon (no longer on Github) created a basic test structure. Gbenro Selere added a CI pipeline for Travis CI. It really worked, and the project was in much better shape after that!
One year passes by, and Kyle Jones adds some contribution guidelines, while I move the CI pipeline to the newly released Github actions.
Chaitanya fixed a bug where the program would hang when the recording stopped by moving the video creation from threads to a separate process. He continued to make the codebase more robust and became a core contributor, reviewing pull requests and handling releases.
gkpln3 added support for multi-monitor configurations. The screen captured will always be the one with the mouse on it.
Fast forward to today, and after almost ten years, we finally created a true macOS app using the awesome py2app bundler. This should make the tool usable by non-developers.
We reached the end of our little journey.
A long time has passed until 1.0. This project is a testament to the wonders of open source collaboration, and I am proud to work on it with contributors from around the world. It doesn't have to be a life-changing project to bring people together who have fun building things. If this were the end of the story, I'd be okay with that. I doubt it, though. Here's to the next ten years!
The video at the beginning is a timelapse of how I finish this article.
Thanks for reading! I mostly write about Rust and my (open-source) projects. If you would like to receive future posts automatically, you can subscribe via RSS or email: