はじめに
最近、AIによるプログラム開発をしていて、改めて面白い時代になったと感じています。
例えば、スクリーンレコーダー。
PCの画面を動画として録画するソフトウェアです。
操作マニュアルの作成や、業務手順の記録、システムの動作説明などで利用します。
もちろん、Windowsの標準機能やOBS Studioなど、既存のツールを利用する方法もあります。
しかし今回、私はスクリーンレコーダーをAIに作ってもらいました。
利用したのはOpenAIのCodexです。
最初に伝えたプロンプトは、これだけです。
PowerShellでスクリーンレコーダーを作りたい
特別な設計書を用意したわけでも、詳細な仕様を最初から決めたわけでもありません。
欲しいものを日本語で伝え、生成されたコードを確認しながら開発を進めました。
この記事では、その経験をもとに、AIを使った小規模ツール開発の可能性と注意点を整理します。
なお、実際に生成されたソースコードは掲載していません。技術的な補足やコマンド例は、今回の成果物の内部実装を再現したものではありません。
1. スクリーンレコーダーをAIで作るという選択肢
スクリーンレコーダーが必要になった場合、一般的には既存ソフトウェアを探すと思います。
実際、既製品には多くのメリットがあります。
機能が豊富で、設定画面が整っており、利用実績もあります。
ただし、自分の用途によっては、そこまで多機能なソフトウェアが必要ない場合もあります。
例えば、次のような機能が欲しいだけならどうでしょうか。
- PC画面を録画する
- 指定したフォルダへ動画を保存する
- 録画開始と停止を操作する
- 保存形式を指定する
- 複数モニターから録画対象を選ぶ
こうした限定的な機能であれば、自分用のツールを作るという選択肢もあります。
そして現在は、その実装をAIに任せることができます。
今回、私が試したのもこの方法です。
2. 最初のプロンプトは、たった一文
Codexに最初に伝えたのは、次の内容でした。
PowerShellでスクリーンレコーダーを作りたい
これだけです。
PowerShellを指定したのは、Windows環境で扱いやすく、既存の.NET環境や外部プログラムと連携できるためです。
ただし、PowerShell自体に高機能な動画エンコーダーが標準搭載されているわけではありません。
実装方式によっては、Windowsの画面キャプチャAPIや、FFmpegなどの外部ツールを組み合わせる必要があります。
重要なのは、こうした技術を最初からすべて自分で調査して実装する代わりに、AIに候補を考えさせ、コードを生成させられることです。
もちろん、一文のプロンプトだけで完成度の高い製品が保証されるわけではありません。
生成されたコードの確認や、必要に応じた修正は必要です。
しかし、最初の試作品を作るためのハードルは、以前よりずっと低くなったと感じました。
3. 欲しい機能を自然言語で追加する
今回のような小規模ツールの開発では、最初から完璧な仕様を用意する必要はありません。
まず基本的な機能を作り、その後で必要な機能を追加していく方法が取れます。
例えば、次のような指示です。
EXEとして使いたい
EXEとして使えるようにして
PowerShellで作成したツールを、実行ファイル形式で扱いたい場合です。
ただし、PowerShellスクリプトのEXE化は、必ずしもネイティブコードへのコンパイルを意味しません。
例えばPS2EXEのようなツールでは、PowerShellスクリプトをEXE形式にまとめることができます。
その一例は次のとおりです。
Invoke-ps2exe .\recorder.ps1 .\recorder.exe
これはPS2EXEを導入済みの環境で利用する参考コマンドです。
EXE化しても、実行に必要な依存関係がすべてなくなるわけではありません。
また、EXE形式にしただけで安全性が高まるわけでもありません。
MP4やMP3形式にしたい
次に、保存するファイル形式です。
動画はMP4で保存して、
音声はMP3形式でも保存できるようにして
動画と音声の保存形式を指定したい場合も、自然言語で要件を追加できます。
ただし、ここで考える必要があるのは、画面キャプチャと動画エンコードは別の処理だということです。
例えばFFmpegを利用する構成なら、画面を取得してMP4形式にエンコードできます。
WindowsでFFmpegのgdigrabを使った画面録画の例は次のとおりです。
ffmpeg -f gdigrab `
-framerate 30 `
-i desktop `
-c:v libx264 `
-pix_fmt yuv420p `
output.mp4
これはFFmpegによる参考例であり、今回Codexが生成したコードそのものではありません。
また、このコマンドは画面映像を録画するもので、音声録音までは含んでいません。
MP3音声を別途保存する場合は、録音デバイスの取得や音声ストリームの処理が必要になります。
マルチモニターに対応したい
複数モニターを使用している場合には、次のような要望も出てきます。
マルチモニターに対応して、
録画対象のモニターを選択できるようにして
この場合、モニターごとの座標、解像度、拡大率などを考慮する必要があります。
単純にデスクトップ全体をキャプチャする方法と、特定のモニターだけを録画する方法では実装が異なります。
WindowsのWindows.Graphics.Capture APIを利用する方法もあります。
AIに依頼すれば、こうした実装方式の候補を提案してもらえます。
ただし、実際の環境で正しく録画できるかは、動作確認が必要です。
4. AIによって変わるのは、実装までの距離
従来であれば、スクリーンレコーダーを自作しようとすると、いくつもの技術要素を調べる必要がありました。
画面キャプチャの仕組み。
動画のエンコード。
録画開始・停止の制御。
ファイル保存。
複数モニターの座標管理。
例外処理。
これらを調査して、組み合わせていく必要があります。
もちろん、今でもその技術的な理解には価値があります。
しかし、AIを使えば、最初のコードを生成するまでの時間を短縮できます。
そして、動作結果を確認しながら、次の機能を追加していくことができます。
私が今回面白いと感じたのは、ここです。
プログラムを作るという行為が、コードを書くことから、実現したい機能を言葉で伝えることへ広がってきた。
小さな業務ツールであれば、こうした開発方法でも十分な場合があると思います。
5. Codex以外でも実現できるのではないか
今回はCodexを利用しました。
ただし、Claude、Gemini、Grokなど、コード生成に対応した他のAIでも、同じような開発は可能だと考えています。
もちろん、実際に同じプロンプトを使って比較したわけではありません。
生成されるコードの品質や、ファイル編集、デバッグ支援、実行環境との連携などには違いがあるでしょう。
そのため、どのAIでも同じ結果が得られると断言するつもりはありません。
それでも、自然言語からプログラムを生成するという開発スタイルは、特定のAIだけのものではなくなってきています。
今後は、どのAIを使うかだけでなく、何を作らせ、どのように確認するかも重要になりそうです。
6. スクリーンレコーダーはAIによる業務分析にも使える
今回スクリーンレコーダーを作ろうと思った理由の一つは、業務分析への活用です。
例えば、PC上で行っている業務を録画します。
その録画データをもとに、操作手順を整理したり、繰り返し作業を抽出したりすることが考えられます。
さらに、対応するAIサービスが動画を扱えるなら、操作内容の分析やマニュアル作成の補助にも利用できるでしょう。
例えば、次のような流れです。
PC操作
↓
スクリーンレコーダーで録画
↓
録画データを確認・整理
↓
必要に応じてAIで分析
↓
業務手順の整理
↓
自動化候補の抽出
ただし、画面録画だけで業務のすべてを理解できるわけではありません。
画面に映らない判断や、利用者が何を目的に操作しているかなどは、別途確認が必要です。
また、録画したデータを外部AIサービスへ送る場合には、情報の取り扱いにも注意が必要です。
それでも、AIに業務内容を伝えるための材料を、自分で用意できるという点には可能性を感じています。
7. 企業環境では、野良プログラムに注意する
ここからは注意点です。
AIによってプログラムを簡単に作れるようになっても、会社のPCで自由に実行してよいとは限りません。
企業によっては、未承認のプログラムや実行ファイルの利用が制限されています。
PowerShellの実行自体が制限されている環境もあります。
また、スクリーンレコーダーは情報を記録するソフトウェアです。
そのため、次のような情報が録画される可能性があります。
- 顧客情報
- 個人情報
- 社内システムの画面
- 認証情報
- 機密資料
- 会議の映像や音声
こうした情報を意図せず保存したり、外部へ送信したりしないよう注意する必要があります。
特に、録画データをAIの分析に使う場合には、社内の情報管理ルールを確認すべきでしょう。
AIが作成したプログラムであっても、企業のセキュリティポリシーに従う必要があります。
8. 動くコードと、安全に使えるコードは違う
もう一つ重要なのは、AIが生成したコードを理解せずに実行するリスクです。
例えば、スクリーンレコーダーでは次のような問題が考えられます。
| 問題 | 想定される影響 |
|---|---|
| 録画ファイルが無制限に増える | ストレージ容量不足 |
| 録画停止処理が不完全 | プロセスの残留 |
| 保存先の指定ミス | 既存ファイルの上書き |
| 例外処理の不足 | 録画ファイルの破損 |
| モニター選択の不具合 | 意図しない画面の録画 |
| 外部通信の確認不足 | 想定外の情報送信 |
| リソース解放の不足 | CPU・メモリの継続消費 |
プログラムを実行できることと、安全に運用できることは違います。
特にAIによるコード生成では、実装のスピードが速い分、確認すべき内容を飛ばしてしまう可能性があります。
私なら、少なくとも以下の点は確認したいところです。
- どのファイルを読み書きするのか
- 外部通信は発生するのか
- 録画停止時にプロセスが正常終了するか
- エラー発生時にリソースが解放されるか
- 保存先の容量不足をどう扱うか
- 録画対象を意図どおりに選択できるか
- 必要のない管理者権限を要求していないか
特に画面録画ツールでは、録画した情報そのものが機密データになり得ます。
自分用のツールであっても、保存場所や外部への送信有無は確認すべきだと思います。
9. 既製品とAIによる自作、どちらがよいのか
ここまで読んで、既存のスクリーンレコーダーを利用した方がよいのではないかと思う人もいるでしょう。
それは、そのとおりだと思います。
OBS Studioのような既製品には、機能、安定性、実績、コミュニティなどのメリットがあります。
一方、AIによる自作には、自分の用途に合わせて機能を限定できるというメリットがあります。
例えば、特定のモニターだけを録画し、決められたフォルダにMP4を保存するだけなら、複雑な設定画面は不要かもしれません。
逆に、高品質な録画、音声ミキシング、配信、詳細なエンコード設定などが必要なら、既製品を利用した方が合理的な場合もあります。
重要なのは、何でも自作することではありません。
既製品を使うか、自分用のツールを作るかという選択肢が増えたことだと思っています。
まとめ
今回、Codexに次の一文を伝えて、スクリーンレコーダーを作ってみました。
PowerShellでスクリーンレコーダーを作りたい
そこから、EXE化、MP4・MP3形式、マルチモニター対応など、自分が欲しい機能を自然言語で追加していくこともできます。
もちろん、生成したコードがそのまま安全に動作するとは限りません。
企業のセキュリティポリシーや、録画データの取り扱いにも注意が必要です。
ただ、小さな業務ツールを作るためのハードルが大きく下がったことは、実感しています。
以前なら、既製品を探すか、自分でコードを書く必要がありました。
今では、AIに作ってもらうという選択肢があります。
スクリーンレコーダーなんて、AIで作れてしまう時代です。
ただし、作れることと、安全に使えることは別。
この違いを理解したうえで、AIによるツール開発を楽しみたいと思っています。