【実録】Codexと「対話」して1時間半でデスクトップアプリを完成させる。VibeCodingの衝撃
PT
PT
2026-05-12
「コードを書く」のではなく「完成を定義する」。AI開発手法「VibeCoding」を実証実験した記録です。PRDから、動画分割・AI文字起こし機能を持つクロスプラットフォームのデスクトップアプリ(MediaSplitter AI)を、たった1時間半で完成させました。AI時代の開発プロセス革新と、成功のための具体的なノウハウを全て公開します。

【実録】Codexと「対話」して1時間半でデスクトップアプリを完成させる。VibeCodingの衝撃

「コードを書く」のではなく「完成を定義する」。

最近、エンジニアの間で話題の VibeCoding(バイブコーディング)。また4月からOpenAI のCodexが物凄く進化してきて、完全にAI開発ツールのTopになりました。この2つを使うと、従来の「設計→実装→テスト」という重厚なプロセスを飛び越え、AIと「ノリ(Vibe)」を合わせながら爆速でプロダクトを作ることが実験できました。

今回は、メディア処理ツール 『MediaSplitter AI』 をVibeCodingで開発した際の全記録を公開します。PRD(製品要件定義書)手書きの画面イメージを渡してから、AI(Whisper)内蔵のデスクトップアプリとしてビルドするまで、Codexが実質的にわずか 約1時間半 だけでアプリケションを完成させました👍。

画像

1. プロジェクト概要:MediaSplitter AI とは?

動画編集ソフトを立ち上げるほどではないけれど、「ここからここまでを切り抜きたい」「ついでに文字起こしもしたい」という日常的なニーズを解消するツールです。

  • コア機能: 高速動画分割(FFmpeg)、AI文字起こし(Whisper)、音声抽出。
  • 技術スタック: Tauri (Rust) + SvelteKit + Tailwind CSS。

画像

2. 開発ログ:爆速のタイムライン

STEP 1: PRDからMVPを一気に生成 (Codex処理: 8分間)

まず、Markdown形式のPRDとイメージ画像をAIに投げました。

AIはわずか8分で、以下の機能を備えたWebベースのプロトタイプを構築。

  • 成果: ダークモードのプロ向けUI、プレビュー再生、FFmpegによるストリームコピー(再エンコードなしの高速処理)。
  • Vibeのポイント: 「まずは動くものを作る」という指示に対し、Node.jsサーバーとフロントエンドの構成を瞬時に提案してきました。

画像

STEP 2: UI/UXの「心地よさ」を追求 (Codex処理: 10分間)

「StartとEndをボタンで打ちたい」「範囲を視覚的に見たい」といった、ユーザー体験に直結する部分を調整。

  • 追加機能: タイムライン上への縦線表示、選択範囲のハイライト。
  • 気づき: VibeCodingでは、「もう少しこうして」という曖昧な表現をAIがコードに落とし込んでくれるため、微調整のループが非常に速いです。

STEP 3: Tauriによるデスクトップ化 (Codex処理: 15分間)

Webアプリとして完成したものを、Mac/Windowsで動くデスクトップアプリ(Tauri)へ移行。

  • 技術的ブレイクスルー: ブラウザでは困難な「ローカルファイルの直接操作」を、Rust側のバックエンド処理に切り替え。GitHub Actionsの設定まで自動生成。

STEP 4: AI文字起こしの統合と「ポータビリティ問題」の解決 (人間とCodex複数回会話: 1時間)

ここが最もドラマチックな場面でした。当初はPython版のWhisperを使っていましたが、配布時の環境依存(Pythonやライブラリのインストール)がネックに。

  • 解決策: whisper.cpp(Rustバインディング)への切り替えを提案。
  • 最終形態: FFmpegバイナリとWhisperの学習済みモデルをアプリ内に「同梱」する設定を完遂。
  • 成果: 「インストールするだけで、どのPCでもAI文字起こしができる」真のポータブルアプリが誕生。

3. VibeCodingを成功させる3つの秘訣

今回の開発を通じて見えた、AI駆動開発のコツを紹介します。

① PRD(要件定義)をしっかり渡す

AIは魔法使いではありません。最初に「何を作りたいか」「ターゲットは誰か」を明確なドキュメント(PRD.md)として渡すことで、AIの出力の精度(Vibe)が劇的に向上します。

② 「捨てやすさ」を許容する

途中で「純粋なHTML版も作って」と依頼したように、異なる構成を試すコストが極めて低いです。正解に固執せず、複数のパターンを生成させて最適なものを選ぶ「オーケストレーター」の視点が重要です。

③ 環境構築の壁をAIと一緒に乗り越える

今回の「Pythonの環境エラー」のように、エンジニアが一番嫌がる環境構築のトラブルも、エラーログをそのまま貼ればAIが仮想環境(venv)や代替案(C++版への移行)を提示してくれます。

4. 結論:VibeCodingは「興味」だけで始められる

「プログラミングができないとアプリは作れない」という時代は終わりました。今回の MediaSplitter AI は、複雑なRustのコードやFFmpegのコマンドを一行も手書きすることなく、Codexとの対話だけで完成しました。

総作業時間: 95分

書いたコード: 0行(すべてCodexによる生成と調整)

もし、あなたのデスクトップに「いつか作りたいアイデアのメモ」があるなら、今すぐCodexにそのメモを投げ込んでみてください。その瞬間から、あなたのVibeCodingが始まります。

技術スタックのまとめ(今回使用したもの)

  • Frontend: HTML5, CSS3 (Tailwind), JavaScript
  • Backend: Node.js (初期), Rust / Tauri (最終)
  • AI: OpenAI Whisper (whisper-rs)
  • Engine: FFmpeg (Stream Copy)

執筆者の独り言:

1時間前までブラウザで動いていたものが、気づけばMacの.appファイルとしてデスクトップで動いている。この全能感こそがCodexの醍醐味です。


ソースコード公開中:https://github.com/perfact-tang/mediaeditor

また、PRD(要件定義書)の内容は下記となります。


🛠️ MediaSplitter AI:製品要件定義書

1. プロジェクト概要

  • 製品名: MediaSplitter AI (仮)
  • コンセプト: 「切る、出す、書き起こす」を最短ステップで。AI(Whisper)と高速エンジン(FFmpeg)を搭載した、Mac/Win両対応のメディア処理ツール。
  • コア価値: 動画編集ソフトを開くほどではない「切り出し・書き出し・文字起こし」作業を、数クリックで完結させる。

2. 機能要件

2.1 入力・メディア管理

機能 内容
マルチフォーマット対応 動画(MP4, MOV, MKV)および音声(MP3, WAV, M4A)のインポート。
インポート方法 ファイル選択ダイアログ + ドラッグ&ドロップ。
メタデータ表示 ファイル名、総再生時間、解像度、容量の表示。

2.2 編集・プレビュー(UIの核)

  • 高性能プレイヤー: 0.5x 〜 5.0x の可変速再生。
  • 波形表示タイムライン: 音声の大きさを視覚化し、切りどころを判断しやすくする。
  • セグメント管理: * 「+」ボタンまたはショートカットキーで現在地を分割点として登録。
    • リスト形式で開始〜終了時間を表示し、個別に削除・微調整が可能。

2.3 分割・抽出ロジック

  • 高速分割(Stream Copy): 再エンコードを行わず、画質劣化なしで瞬時に切り出し(FFmpeg利用)。
  • 自動検出(オプション): * 静音検出: 無音区間を自動判別してカット点を打つ。
    • シーン検出: 映像の切り替わりを検知(将来拡張)。

2.4 AI 文字起こし (Transcription)

  • エンジン: OpenAI Whisper を採用(ローカル実行優先)。
  • 出力: プレーンテキスト(.txt)および字幕ファイル(.srt)形式。
  • 言語: 日本語・中国語・韓国語・英語・自動判別に対応。

2.5 出力設定 (Output)

  • 一括処理: 指定した全セグメントを1クリックで一括書き出し。
  • マルチ出力トグル: 1つの区間に対し「動画・音声・テキスト」を個別にチェックして同時出力。

3. 画面設計イメージ

図で描いていただいた直感的なレイアウトを採用します。

セクション 役割
左:Drop Zone 「+」アイコンが配置された、ファイル読み込みエリア。
中:Main Canvas プレビュー画面、再生制御、波形付きタイムライン。
右:Batch Panel 登録された区間リスト(1. 00:31~ ❌など)と出力チェックボックス。
下:Action Bar 進捗バーと「一括分割実行」ボタン。

4. 技術スタック(推奨)

  • Framework: Tauri (軽量・高速・Mac/Win両対応)
  • Frontend: Sveletkit + Tailwind CSS
  • Backend (Rust):
    • ffmpeg-next: 動画・音声の高速切り出し。
    • whisper-rs: ローカルでのAI文字起こし。
  • Build/Distribution: GitHub Actions による .dmg (Mac) と .msi (Win) の自動ビルド。

5. ロードマップ:3段階の開発ステップ

【Phase 1】MVP(最小機能版)

「まずは動くものを作る」

  • 動画・音声の読み込みと再生。
  • 手動での区間指定 + FFmpegによる動画分割(再エンコードなし)。
  • Mac/Win両方でのビルド確認。

【Phase 2】AI & 高機能化

「図の要件をすべて満たす」

  • Whisperによる文字起こし機能の実装。
  • 音声波形の表示。
  • 出力チェックボックス(動画/音声/文字)の連動。

【Phase 3】プロ仕様への磨き込み

「さらに便利に」

  • 静音自動検出機能。
  • 字幕の動画焼き込み(Hardsub)機能。
  • GPU加速(処理の高速化)対応。

📝 開発者(あなた)へのメッセージ

この統合案は、「手軽さ」と「多機能」のバランスを重視しています。特にTauriとRustを使うことで、ユーザーは「重い編集ソフトを立ち上げるストレス」から解放されるはずです。