Timelapseのタイムラプス
原文は Matthias Endler により に公開されました。 このブログを購読する
Timelapseは、macOS用の小さなオープンソースのスクリーンレコーダーです。1秒ごとにスクリーンショットを撮り、最後に1本の動画を作成します。
まさか1.0リリースを迎えるとは自分でも思っていませんでしたが、その記念に、このプロジェクトの歩みを“タイムラプス”で振り返ってみたいと思います。ここまで来るのに、なんと10年もかかりました。

2011年 — すべてはここから始まった
正直なところ、なぜ最初にこのツールを作ったのか、もう覚えていません。たぶん、スクリーンレコーダーが個人的に必要だったのでしょう……。
2011年5月にプロジェクトを始めたとき、私はコンピュータサイエンスの修士課程に在籍していました。大学で必要だったのかもしれませんが、おそらくは課題から逃げるための口実を探していただけだったのでしょう。
当時はそんなツールをたくさん作っていました。個人的な痒いところを掻くためだったり、新しいプログラミング言語を学ぶためだったり、単に楽しむためだったり。
その中には、アメリカのファストフードチェーンSubway用のランダムサンドイッチジェネレーター、WriteRoomにインスパイアされたキーボード操作のドローイングアプリDrawRoom、そしてクライアントに販売していたお決まりのCMSソフトウェアなどがあります。驚くことではありませんが、どれも大成功とはいきませんでした。

確実に覚えているのは、既存のスクリーンレコーダーのどれにも満足していなかったということです。大きく分けると、次の3種類に分類できました。
- お金がかかったり、外部に通信したりするプロプライエタリなもの。
- macOSでは動かないもの。
- フォーラムやGitHubのGistで回覧されている、小さくて脆い、その場しのぎのスクリプト。謳い文句どおりに動くことはめったにありませんでした。
残ったツールの中にタイムラプス機能を備えたものは一つもなかったので、自分で作ることにしたのです。
こう書くと壮大に聞こえますが、実際には1日で作りました。2011年5月11日に5つの華麗なコミットを残したあと、そこから7年間、放置され続けたのです……。
2018
しばらく、何も面白いことは起こりませんでした。
2018年1月、どこからともなく、初めてのユーザーからバグ報告が届きました。タイトルはavi作成時にハングする 😱というものでした。カナダのゲーム開発者juul1aさんが、インディーゲームの制作過程を記録するためにこのツールを使おうとしていたのです。——なんて素敵なんでしょう!
彼女を助けるために、私は全体的なクリーンアップを行うことにしました。プログラムの使い方をようやく書き残し、requirements.txtを追加し、ツールをmencoderからffmpegへ移植したのです。
これでtimelapseは晴れて本番で使える状態になりました。🎬 彼女の動画から、タイムラプスを使った実際の映像をどうぞ。

その時点では、ツールはまだ非常に不安定でコマンドラインからしか使えませんでしたが、ここからちゃんとしたアプリにできるかもしれないという可能性を感じ始めていました。ただ、なかなか時間が見つからなかったのです。
2018年10月、Hacktoberfestの期間中にサポートを求めることにしました。いくつかチケットを作り、hacktoberfestのラベルを付けてコントリビューターを探してみたのです。
そして、あとは待ちました。
まずShreya V Prabhuさんが、新しい録画が以前のものを上書きしてしまう問題を動画名にタイムスタンプを追加することで修正してくれました。続いてAbner CampanhaさんとShane Creedonさん(現在はGitHubにいません)が基本的なテスト構造を作り、Gbenro SelereさんがTravis CI用のCIパイプラインを追加してくれました。本当にうまくいき、プロジェクトはそこからずっと良くなりました!
2019
1年が経ち、Kyle Jonesさんがコントリビューションガイドラインを追加してくれ、私はCIパイプラインを新たにリリースされたGitHub Actionsへ移行しました。
Chaitanyaさんが、録画停止時にプログラムがハングするバグを動画生成をスレッドから別プロセスへ移すことで修正してくれました。彼はその後もコードベースをより堅牢にし、プルリクエストのレビューやリリースを担当するコアコントリビューターとなりました。
orcutt989さんのおかげで、アプリはPython 3.6の型ヒントを使うようになりました。
gkpln3さんがマルチモニター構成のサポートを追加してくれました。キャプチャされるのは、常にマウスカーソルがあるスクリーンです。
2020
話を今日まで一気に進めると、ほぼ10年を経て、素晴らしいpy2appバンドラーを使って、ついに本物のmacOSアプリを作ることができました。これで開発者以外でもこのツールを使えるようになるはずです。
未来へ
私たちの小さな旅も終わりに近づきました。
1.0までに長い時間がかかりました。このプロジェクトはオープンソースのコラボレーションがもたらす素晴らしさの証であり、世界中のコントリビューターと共に取り組めたことを誇りに思います。人生を変えるようなプロジェクトである必要はありません。ものづくりを楽しむ人々が集うだけで十分なのです。もしこれで物語が終わったとしても、私はそれで構わないと思っています。ただ、そうはならない気がしています。これからの10年に乾杯!
おまけ
冒頭の動画は、この記事を書き上げていく様子をタイムラプスにしたものです。
なんともメタ的ですね。
記事をランダムに読む
コメント
ログインしてコメントする