動画編集をプログラミングでやってみたら、想像以上に面白かった
- 公開日
最近、動画編集をプログラミングでやってみています。
きっかけは、Kosshi を Product Hunt に出すために紹介動画を作る必要があったことでした。動画を作るのは何度もやっているのですが、Premiere や Final Cut を開くのは毎回ちょっと気が重い作業で、また慣れないタイムラインと格闘することになるな、と思っていました。
そこで、Remotion というのを試してみました。React で動画を書けるフレームワークで、JSX で書いたコンポーネントが動画になって出てきます。Premiere や Final Cut のタイムラインではなく、純粋にコードを書いて、それがそのまま MP4 になる、という変わったツールです。
想像以上に面白かったので、その話を書きたいと思います。
これが、そのときに作った動画です。
実際に書いてみると、これが意外とちゃんと動きました。自分にとっては Premiere を開くより、ずっと取っ付きやすい感じでした。型がついて、コンポーネント化できて、git で履歴が残るので、後から触っても何をやっているかが分かる、というのも大きかったです。
これは、もっとガッツリしたやつも作れるのでは、と思って、前から構想だけはあった「アウトライナー完全解説」という解説動画も作り始めました。アウトライナーって何なのか、なぜ面白いのか、どういう歴史があるのかを、過去の論文や先行研究までさかのぼって解説する、という趣旨の動画です。
制作中の一場面は、こんな感じです。

やってみると、本当にプログラマー向きの作業でした。
ひとつ前提として断っておくと、これは AI エージェントにコードを書かせる前提の話です。自分で全部手書きしていたら、たぶん割に合わない量のコードを書くことになります。
たとえば、書いているコードを数えてみたら、いつの間にか 12,572 行になっていました。これが動画になります。動画なのに git log には「リファクタしました」みたいなコミットが並んでいる。動画にリファクタコミットがあるというのは、ちょっと笑える光景だなと思います。
何が面白いかというと、動画を編集するという作業が、完全にソフトウェア開発と同じ手触りになる、というところです。画面を React で作る、型がつく、テストで品質を担保できる、コンポーネントを共通化できる、git で差分管理できる。慣れ親しんだソフトウェアエンジニアリングが、そのまま動画制作に流用できるわけです。これは、プログラマーにとってはかなり良い体験です。
ポン出しの AI 生成とは違う
「いや、AI で動画作るって、内容は大丈夫なの?」と思う方もいるかもしれません。
ただ、Remotion 的なアプローチと、ポン出しの AI 的なアプローチは、けっこう違うものなんですよね。
Remotion でやっているのは、人間が GUI でやっていた操作 (クリップを並べる、テキストを置く、フェードをかける) を、関数として書き下しただけのものです。ボトムアップで積み上げているだけなので、出力はあくまでツールができる範囲に収まる。予測可能で、デバッグできて、再現性があります。
加えて、ソフトウェア工学が積み上げてきた品質管理の道具が、そのまま乗ります。動画にテストがあるわけです。
一方、Sora みたいな動画をいきなり生成するようなスタイルのものは、出力が予測不能で、編集が難しい。「ここの色だけ変えたい」が効きにくく、再生成すると全体が変わってしまう。型もテストもありません。
ぜんぶがコードで作れる時代
動画に限らず、コードベースで何かを作るツール自体は、昔からあるにはありました。ただ、これまでは、あくまでアプリケーションを作る人やシステムを組む人が使うもので、コンテンツや作品を作る一般のユーザーが使うようなものではなかった。
でも、最近、なんだか逆になっている気がするんですよね。
Premiere のメニューと設定を片っ端から覚えるよりは、Remotion で「ここにテキストを 30 フレームかけてフェードイン」と AI エージェントに依頼する方が早い。複雑な GUI ツールの習熟コストが、コードを介したアプローチのコストを上回り始めている、ということなんだと思います。
いま作っているこの解説動画自体も、まさにそういう感じで作っています。たとえば最初に取り組んだのは、動画の元になる「動画用の論文」を作ることでした。
生成 AI の作った文章や内容は、古かったり嘘が散りばめられたりしているので、基本的には話半分で聞いたほうが良い、というのは、かなり改善してきたとはいえ状況は変わっていないです。なので、必ずインターネット上で集められる確かな情報で根拠を集めさせて、AI にやらせるのはある種の変換のみ、という形にしています。
で、それを網羅的にまとめた情報を読みたいわけですが、これってまさに論文の形式がぴったり当てはまるんですよね。そもそも確かな情報って何か?というのを突き詰めると、ちゃんと査読されている論文が理想的なわけです。そういう論文をまとめた解説論文を作っていく、というイメージです。
BibTeX というスタイルで出典をデータとして管理しておけば、本文と引用がきっちり紐付いた形でまとめられるので、AI にも引用を正確に扱わせやすくなる。
すると、知りたい内容が日本語で網羅的にまとまった論文らしきものが、できあがる。さらに、その出典も追跡可能な状態になっているので、あとは自分でそれを読むだけ、というわけです。
で、その論文作成のフローすらも、ほとんどプログラミングをやっているのと変わらないんですよね。
実は、そんなに簡単ではない
ここまで Remotion 推しっぽい流れで書いてきたのですが、ひとつ正直なところを書いておくと、これは、シンプルに簡単に動画が作れるかと言われたら、全然そんなことはないです。
過去に動画を作ったことは何度もあるのですが、動画を編集するのはかなり大変です。Remotion で書いていても、その大変さが消えるわけではないんです。むしろ、たぶん時間だけで見たら、普通の動画編集ソフトで作ったほうがはるかに早いと思います。慣れている人からすると、なんでこんな遠回りをしなきゃいけないんだ、と思われるかもしれません。
じゃあ、なぜわざわざ Remotion で書いているか、というと、自分にとっては理由が二つあります。
ひとつは、心理的なハードルが圧倒的に低いこと。プログラミングというのは、自分にとってはほぼ一日中やっている作業なので、すごく身近に感じます。Premiere を開くのとターミナルを開くのを比べると、自分の場合はターミナルを開くほうが、心理的に何も負担がない。動画の話なのに、いつもの作業の延長線でやれる感覚です。
もうひとつは、一度システムとして作ってしまえば、次回が圧倒的に楽になる、という信念です。これは、ソフトウェア開発の感覚そのもので、最初に骨格を作るのは大変でも、それを使い回せるようになってからの加速がすごい。AI エージェントがあるからこそこのコストを払えるわけですが、動画でも同じことが起きるはずだ、という確信が、Remotion を選んでいる根っこにあります。
関連記事
App Store のスクリーンショットを、9言語ぶん Remotion で書き出した
Kosshi の海外ダウンロードが少なくて、調べたら各国のストアでほとんど見つからない状態でした。9 言語ぶんのストア画像を、使い方が伝わるように Remotion でコードから作り直した話です。
問い合わせフォームをやめて、自分のメールアドレスにした
最近、お問い合わせの窓口を、フォームから自分のメールアドレスに変えました。 きっかけは、問い合わせの入り口はフォームなのに、自分が返すのはメール、という食い違いが、地味に気になってきたことです。 一度フォームから連絡をくれて、そのままメールでやり取りした方は、次に何か伝えたくなったとき、またフォームに送るのか、このままメールで送っていいのか、たぶん迷います。 考えてみると、フォームから来ても、メールで来ても、結局は全部自分が読んで、自分で返しています。 だとしたら、入り口を二つ用意せず、最初から自分のメールアドレスに送ってもらうほうが、お互いにシンプルです。
Kosshi のニュースレターを始めました
前回、Kosshi のフィードバックがメールで増えてきた、という話を書きました。あれ以来、メールでのやり取りがずっと続いています。 そのなかで困っていたのが、ひとりひとりに返信しているけれど、使ってくれている人全員に向けて「これが変わります」と伝える手段が無いことでした。 一応、リリースノートのページを作ったので、そこに記載して、X や Bluesky で「リリースした」とか「こういう方針でいく」みたいなことを書くことはできます。でも、ほとんどの人はそれを追っていません。投稿はすぐ流れていきます。知ってもらうにはサイトを見にきてもらうしかなく、こちらから届けにいく手段が無い。 X は日本だとよく使われていますが、日本国外ではそこまで使われていない印象で、Kosshi は最近はむしろ海外ユーザーの方が多くな