最推奨
Python + DearPyGui + FFmpeg
最もシンプルで、Claude Codeと最も相性が良いアプローチ
なぜこのアプローチを推奨するか
Claude Code処理速度: 最速
PythonはClaude Codeが最も得意とする言語。コード生成・理解が高速。
コード量: 500-1500行
基本的な動画エディタが500行程度で実装可能。全体を把握しやすい。
単一言語
Python1言語で完結。デュアル言語(TypeScript + Rust等)の複雑さがない。
クロスプラットフォーム
Windows, Linux, macOS全てで問題なく動作。
DearPyGuiとは
DearPyGuiは、Pythonで高速なGUIを作成するためのライブラリです。 C++で書かれたDear ImGuiをPythonから使えるようにしたものです。
高速
C++ベースなのでTkinterより圧倒的に高速。動画プレビューもスムーズ。
シンプルなAPI
即時モードGUI。状態管理が簡単で、コード量が少なくて済む。
見た目がモダン
Tkinterと違い、現代的なUIを構築可能。ダークモード対応。
インストール
# DearPyGuiをインストール
pip install dearpygui
# FFmpegは別途インストール(Windows)
winget install ffmpeg
最小構成の動画エディタ
以下のコードで基本的な動画カット機能を持つエディタが動きます(約30行):
import dearpygui.dearpygui as dpg
import subprocess
dpg.create_context()
def cut_video():
input_file = dpg.get_value("input")
output_file = dpg.get_value("output")
start = dpg.get_value("start")
end = dpg.get_value("end")
subprocess.run([
'ffmpeg', '-y',
'-i', input_file,
'-ss', str(start),
'-to', str(end),
'-c', 'copy',
output_file
])
dpg.set_value("status", "完了!")
with dpg.window(label="Video Editor", width=500, height=300):
dpg.add_input_text(label="入力ファイル", tag="input", default_value="input.mp4")
dpg.add_input_text(label="出力ファイル", tag="output", default_value="output.mp4")
dpg.add_input_float(label="開始(秒)", tag="start", default_value=0)
dpg.add_input_float(label="終了(秒)", tag="end", default_value=10)
dpg.add_button(label="カット実行", callback=cut_video)
dpg.add_text("", tag="status")
dpg.create_viewport(title='Simple Video Editor', width=520, height=350)
dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()機能拡張の例
動画プレビュー追加
DearPyGuiのraw textureを使ってフレームを表示できます。
# OpenCVで動画フレームを取得してDearPyGuiに表示
import cv2
import numpy as np
cap = cv2.VideoCapture("input.mp4")
ret, frame = cap.read()
# frameをDearPyGuiのtextureに変換して表示ファイルダイアログ
def select_file(sender, app_data):
dpg.set_value("input", app_data['file_path_name'])
dpg.add_file_dialog(
callback=select_file,
file_count=1,
show=False,
tag="file_dialog"
)
dpg.add_button(label="ファイル選択",
callback=lambda: dpg.show_item("file_dialog"))進捗バー
dpg.add_progress_bar(tag="progress", default_value=0.0) # FFmpegの進捗を解析して更新 # -progress pipe:1 オプションを使用
Claude Codeでの開発フロー
- 1
基本UIを作成
「DearPyGuiで動画カット用のGUIを作って」
- 2
FFmpeg連携追加
「カットボタンを押したらFFmpegを実行するようにして」
- 3
機能追加
「動画プレビュー機能を追加して」「進捗バーを表示して」
- 4
反復改善
動作確認 → フィードバック → 修正を繰り返す