Communitygithub.com

e1dred/filmcraft

動画のカット・トリミング、タイトル・グラフィックの追加、カラーグレーディング、オーディオミキシング、MP4/GIF/静止画の書き出し、FilmCraftアプリ(storytold)への接続など、filmcraft-cliの操作全般に使用します。

filmcraft とは?

FilmCraftは、Premiere Proスタイルの動画編集を実現する、Rust製の初期アルファ版ビデオエディターです。CLI、MCPサーバー、およびアプリの制御チャンネルはすべて同一のエンジンコマンドを実行します。これにより、ヘッドレス環境での自動化と、実際のアプリケーションウィンドウを介した操作の両方をサポートします。 このスキルは、プロジェクト管理、メディアのインポート、シーケンス編集、カット・トリミング、トランジション、ビデオエフェクトとキーフレーム、タイトルとグラフィック、オーディオミキサー、字幕(SRT)、エクスポート(MP4/GIF/静止画)など、FilmCraftの全機能をカバーする詳細なリファレンスを提供します。また、ヘッドレス環境特有の注意点(時間はフレームではなく「ティック」で表現される、デフォルトのテキストサイズが小さいフレームではみ出す、リップル編集が同期ロックされたトラックで失敗するなど)や、各バージョンで追加された新しいコマンドの情報も含まれています。このスキルを使うことで、AIエージェントはFilmCraftを正確に制御し、複雑な編集ワークフローを自動化できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/e1dred/agent-skills/tree/HEAD/filmcraft

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

filmcraft は何をしますか?

アップデート: このフォルダに .installed-from ファイルがある場合(リポジトリからコピーされたときに書き込まれます)、セッションごとに git ls-remote https://gitlab.com/e1dred/agent-skills.git HEAD を1回実行してください。出力行のうち、末尾が正確に HEAD である行のハッシュを取得します。そのハッシュがファイルの内容と異なる場合は、新しいバージョンが存在することをユーザーに伝え、更新を提案してください(「更新」については https://gitlab.com/e1dred/agent-skills/-/blob/main/INSTALL.md を参照。ローカルの編集をマージできます)。許可なく更新しないでください。ハッシュは比較する前に空白をトリミングしてください。ファイルがない場合、クローンまたはシンボリックリンクの場合、ネットワークに接続できない場合(空の出力、または git ls-remote からのエラー)は、何もせずスキップしてください。

初回ヘッドレスタスクからのフィールドノート。最終テストは FilmCraft 0.17.1 (Linux AppImage) で実施。FilmCraftはRustで書かれた、Premiereスタイルのビデオエディターの初期アルファ版です。すべてのメニュー項目とボタンはエンジンのコマンドです。CLI、MCPサーバー、アプリの制御チャンネルはすべて同じコマンドを実行します。filmcraft-cli --version が新しい場合は、これに依存する前にここに書かれていることを再確認してください。

セットアップ

  • CLI: AppImageから抽出します (filmcraft.appimage --appimage-extract、usr/bin/filmcraft-cli を安定した場所にコピー)。自己完結型で、ウィンドウは不要です。AppImage自体に対して --version を実行しないでください。
  • ヘッドレス: filmcraft-cli --project p.fcproj exec <id> key=value …。スクリプトはJSON Lines形式で、1つのセッションを維持します: filmcraft-cli --project p.fcproj run script.jsonl [--save]。各行は {"id":"…","params":{…}} の形式です。または、file.newProject の後に filmcraft-cli run を単独で実行します。サブコマンド: commands、describe、inspect、import、export、render、probe。
  • ライブアプリ: filmcraft --control 9876 (または FILMCRAFT_CONTROL_PORT)。リスナーは環境変数 FILMCRAFT_CONTROL_TOKEN (64文字の16進数) を必要とします。これがないと接続は閉じたままになります。filmcraft-cli mcp --bridge 127.0.0.1:9876 でブリッジします。
  • MCP: filmcraft-cli mcp (ヘッドレス) または --bridge (ライブ)。

参照ファイル一覧

タスクに一致するファイルを読んでください。各ファイルは、どのセクションが含まれているかを示しています。grep -n を reference/ に対して使用して、コマンドIDを見つけてください。

reference/ 内のファイル読むべき内容セクション
projects-and-timeline.mdプロジェクト、メディアのインポート、シーケンス、プレイヘッド、カミソリとトリミング、マーカー、保存、トランジション、ビデオエフェクトとキーフレーム、フレームホールド、プロジェクトノートプロジェクトとメディア; シーケンス; カットとトリミング; マーカーと保存; トランジション; ビデオエフェクトとキーフレーム; フレームホールド、選択、プロジェクトノート; その他の編集ツール
titles-and-graphics.mdテキストレイヤーとシェイプレイヤー、小さいフレームでのサイズ/フィット、レイヤーの読み戻し、縦書きテキストとインポートした画像タイトル; サイジングとフィッティング; レイヤープロパティ; その他のレイヤーツール
audio-mixer.mdミキサーストリップ、値、サブミックス、インサートとセンド、クリップゲイン、エッセンシャルサウンドミキサー; クリップオーディオ
captions.md字幕トラック、キャプションの追加/編集/移動、SRTのインポートとエクスポートキャプショントラックとSRT
export.mdエクスポートプリセットとフォーマット、エクスポートキュー、MP4/GIFエクスポート、フレーム静止画、インターエクスチェンジエクスポート、プロービングプリセット; エクスポート; プリセットとエクスポートキュー; 静止画; プロービング
command-catalogue.mdその他すべてのコマンドID(クリップ、タイムライン、シーケンス、トリム、グラフィックス、編集、ファイル、プロジェクト、マルチカム、ソース、プリファレンス、ショートカットなど)。各コマンドは検証済み (JSONパス old → new)、結果を返した、実行された、または理由とともに拒否されたことがマークされています。選択依存コマンドを有効にするセットアップについても説明。ファミリごとに1セクション
live-app.md--bridge を介した実行中のアプリの操作: ui_* ツール、ライブでのみ動作するもの、隠しディスプレイでの実行方法接続; ライブアプリが追加するもの
newer-commands.md各バージョンで追加または変更された内容0.17.0; 0.17.1
log.md何がいつテストされたかの日付付きログログ

CLIの基本 (検証済み)

filmcraft-cli commands --json                    # 716 コマンド: id, label, menu, params, enabled
filmcraft-cli describe file.import               # 1つのコマンドのパラメータドキュメント
filmcraft-cli --project p.fcproj inspect         # {project:{…}, sequence:{…}} をJSONで出力
filmcraft-cli import clip.mp4 --project p.fcproj
filmcraft-cli --project p.fcproj export out.mp4 --scale 0.5 --quality 70
filmcraft-cli --project p.fcproj render --seconds 2 --out frame.png
filmcraft-cli probe clip.mp4                     # 種類、長さ(ティック)、ビデオ/オーディオストリームの詳細
  • JSONLスクリプトは状態を維持します: file.newProject → file.import {"paths":["clip.mp4"]} → {"items":[1]} → file.newSequenceFromClip {"items":[1]} → {"clips":[6,7],"sequence":4} → … → file.saveAs {"path":"p.fcproj"}。
  • 後続のすべてのCLI呼び出しに --project を渡してください。これがないと、各呼び出しは新しいセッションになります。

注意点

  • 時刻はフレームではなく「ティック」です: シーケンスは3秒間で762,048,000,000と報告します(254,016,000,000 ティック/秒)。playhead.set は seconds、frame、time、timecode を受け入れ、最も近いフレームにスナップします(1.5秒 → フレーム37)。
  • デフォルトサイズのテキストレイヤーは小さなフレームではみ出します。 graphics.newText のデフォルトは100pxです。320×180のシーケンスで

関連スキル