Communitygithub.com

skulitom/cutbolt-plugin

ソースバウンドのトランスクリプトから編集済みのCutboltタイムラインにキャプションを作成し、中間ムービーを介さずに編集可能なシーンクリップをアタッチします。

cutbolt-plugin とは?

このスキルは、Cutboltプラグインを使用して、ソースバウンドのトランスクリプト(transcript.json)から現在のカットにキャプションをドラフトするワークフローを提供します。ユーザーは、$PROJECT_IDや$REVISIONなどのプレースホルダーを実際の値に置き換え、`cutbolt_run`コマンドを使用してキャプションのドラフト、レンダリング、ジョブ待機、アタッチの一連のステップを実行します。ドラフト段階ではトランスクリプトからキュー(テキストとタイミング)を取得し、レンダリングではフォント、サイズ、矩形、行の高さなどのレイアウト設定を指定してキャプションを生成します。生成されたキャプションは`caption-edits.json`として出力され、`session.apply`でタイムラインにアタッチされます。このスキルはWindowsとLinuxで動作し、外部のFFmpeg/ffprobeに依存しますが、音声認識には別途設定が必要です。キャプションは中間ムービーを生成せず、直接フッテージからレンダリングされるため、編集可能なシーンレシピが保持されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/skulitom/cutbolt-plugin/tree/HEAD/skills/captions

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

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

ドキュメント

現在のカットにキャプションを付ける

配置されたトラックとトランスクリプトドキュメント(transcript.json)を含む保存済みプロジェクトを使用します。 $PROJECT_IDと$REVISIONは現在のカットを参照します。タイミング編集後にドラフトします。 $PLACEHOLDERSを実際の値に置き換え、リストされたcutbolt_* 呼び出しをコマンドなしで送信するか、 cutbolt_runをcommand/argumentsとともに使用します。job.startでのブロッキングレンダリングを維持します。

{"command":"captions.draft","project":{"project_id":"$PROJECT_ID"},"transcripts":[{"file":"transcript.json"}]}

返されたドキュメントのキューテキストとタイミングを確認し、$CAPTION_DOCUMENTとして保持します。 レンダリング前に認識エラーを修正します。$FONTはフォント識別子/パスオブジェクトです(例:{"path":"font.ttf"})。 またはfonts.findから取得した明確なインストール名です。$FONT_SIZE、$LINE_HEIGHT、$CAPTION_RECTは プロジェクトに適合するピクセルレイアウト値です。実際のキューに十分なスペースを選択します。 オーバーフローは拒否されるため、切り捨てられたテキストが黙って通過することはありません。

{"command":"job.start","request_id":"caption-render","run":"captions.render","arguments":{"document":"$CAPTION_DOCUMENT","project":{"project_id":"$PROJECT_ID"},"layouts":{"default":{"fonts":["$FONT"],"size":"$FONT_SIZE","rect":"$CAPTION_RECT","line_height":"$LINE_HEIGHT","letter_spacing":0,"wrap":"none","overflow":"reject"}},"output":"caption-edits.json","mode":"generated","track_id":"captions","asset_id":"caption"}}

$JOB_IDは返されたチケットです。

{"command":"job.wait","job_id":"$JOB_ID","timeout_seconds":120}

ステータスがcompletedになった場合のみ続行します。result.operationsを$CAPTION_OPERATIONS (ファイル参照)として、result.expected_revisionを$CAPTION_REVISIONとして保持します。記録されたリビジョンでその提案を適用します。 このコマンドは、キャプショントラックが存在しない場合に作成します。既に重複するキャプションが存在する場合は、 意図した古いクリップを明示的に削除し、新しい先頭に対して再度準備します。 キャプションを重複させたり、無関係なグラフィックを上書きしたりしないでください。

{"command":"session.apply","project_id":"$PROJECT_ID","expected_revision":"$CAPTION_REVISION","request_id":"attach-captions","operations":"$CAPTION_OPERATIONS"}

新しいリビジョンを保持します。代表的な時刻(最初と最後のキューを含む)で実際のキャプションをエクスポートして検査します。 このステップ後のタイミング編集には、再生成されたキャプションが必要です。 保存されたクリップは編集可能なシーンレシピを保持し、フッテージから直接レンダリングされます。 中間的なキャプションムービーはコンパイルされません。後でテキスト/タイミング編集を行うためにキャプションドキュメントを保持します。

ローカルフォントを使用する場合はパスオブジェクトを使用し、文字列はインストールされたフォントファミリー名を指定します。 インストールされたフォントが見つからないか曖昧な場合は、fonts.findから使用可能な識別子を取得します。テキストオーバーフローの場合は、 ボックス/フォント/キューのレイアウトを調整し、新しい出力ファイル名を使用します。古いリビジョンの場合は、 アタッチ前にタイムラインのタイミングが変更されたかどうかを確認します。不確かな編集のリクエストIDを再利用し、 session.receiptを検査します。job.waitがチケットを返すことは、レンダリングが完了した証拠にはなりません。

このワークフローはWindowsとLinuxで動作し、外部のFFmpeg/ffprobeを使用します。音声認識は、 必要な場合、別途設定されたローカルランタイムとモデルが必要です。録音とハードウェアデコードには Linux向けのバックエンドはありません。このプラグインはエンジン、フォント、モデル、メディアツールをバンドルしていません。

関連スキル