Communitygithub.com

Freedom Video Generation Studio

動画モデルAPIを自由に切り替えながら、Manimレンダリング、Kokoro中国語ナレーション、字幕、プロバイダー切り替え、コストガード、リトライ制限、利用記録を使って動画を作成します。Codex、Claude、Gemini、OpenClaw、Hermes、DeepSeek、Kimi、WorkBuddy、または通常のPythonスクリプトで使用できます。

Freedom Video Generation Studio とは?

Freedom Video Generation Studioは、教育用・解説用の再現可能な動画を生成するためのスキルです。Manimを使った必須のレンダリングにより、コードアニメーションや図解などの決定論的なシーンを確実に作り出し、さらにクラウドビデオAPI(Agnes Video 2.5 Flashなど)を追加で利用して映像素材を補完できます。ワークフローはCodex、Claude、Gemini、DeepSeek、Kimiなど複数のAIエージェントや通常のPythonスクリプトで動作し、ポータブルです。主な特徴として、Kokoroによる中国語ナレーション生成(発話速度や話者選択可能)、字幕生成、プロバイダー切り替え、リクエスト前のコスト確認と残高チェック、最大リトライ回数とポーリング間隔の制御、利用記録(video-usage.jsonl)の自動記録が含まれます。また、セキュリティ面ではAPIキーや認証情報をソースコードやログに保存しないよう徹底しています。

対応✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add makunrui80-oss/freedom-video-skill

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

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

ドキュメント

Freedom Video Generation Studio は何をしますか?

トピック、スクリプト、プロンプト、Pythonの例から再現可能な動画を構築します。決定論的なシーンやコード・図のアニメーションにはManimレンダリングが必須です。設定済みのクラウドビデオモデルを追加して、他の映像素材を生成することもできます。このワークフローは、Codex、Claude、Gemini、OpenClaw、Hermes、DeepSeek、Kimi、WorkBuddy、または通常のPythonスクリプトでそのまま利用できます。

2つのプロバイダー層を分離する

  • エージェントプロバイダーは、レッスンプラン、ナレーション、字幕、プロンプト、Manim/Pythonソースの作成にのみ使用します。OpenAI互換のチャットエンドポイントは、DeepSeek、Kimi、Hermesなどのプロバイダーに使用できます。
  • ビデオプロバイダーは、ビデオクリップの生成または強化にのみ使用します。ビデオジョブをチャット補完エンドポイントに送信しないでください。
  • Agnes Video 2.5 Flashはオプションのデフォルトとして扱い、必須依存にはしないでください。
  • プロバイダーの設定や呼び出しの前に、references/provider-config.mdをお読みください。

必須ワークフロー

  1. 出力先プロジェクトディレクトリを作成します。ソースコード、音声、字幕、レンダリング結果、ログはすべてこのディレクトリ内に保持します。

  2. レッスンの作成やレンダリングの前に、以下を実行します。

    python3 scripts/ensure_manim.py --project-root <OUTPUT_PROJECT>
    

    この手順は必須です。Manimを<OUTPUT_PROJECT>/.venv-manimに検出またはインストールし、バージョンを確認し、実際のスモークレンダリングを行います。失敗した場合は停止してください。以降のレンダリングでは、スクリプトが出力するManim実行可能ファイルのパスを使用します。

  3. ナレーションが必要な場合は、生成前に以下の必須セットアップを実行します。

    python3 scripts/ensure_kokoro.py --project-root <OUTPUT_PROJECT>
    

    これにより、固定バージョンのKokoro中国語スタックが<OUTPUT_PROJECT>/.venv-kokoroにインストールされ、要求されたkokoro-tts-zhソースリビジョンが.vendor以下に保存され、初回使用時に選択されたモデル/音声がダウンロードされ、実際のスモークテストWAVが合成されます。いずれかのステップが失敗した場合は停止します。音声とナレーションコマンドについてはreferences/audio-config.mdを参照してください。

  4. タイム付きのレッスンプランを作成します。各シーンについて、ナレーション、画面に表示するコード、アニメーション、字幕テキスト、および時間を指定します。コード実行の概念、状態変化、ポインター、トレース、図、および決定論的な教育用ビジュアルにはManimを使用します。

  5. 完全なナレーションを生成してからシーンのタイミングを固定します。scripts/kokoro_narrate.pyを使用し、デフォルトでは温かみのある教え方の音声zf_032を速度0.96で使用します。1つのレッスン内では1つの音声と安定した中程度の速度を維持し、測定されたWAVとそのマニフェストに合わせてビジュアルや字幕のタイミングを調整します。

  6. Manimのドラフトをレンダリングし、測定された時間、フレームサイズ、テキストの境界、コードハイライト、トランジションがナレーションプランと一致することを確認します。

  7. クラウドビデオプロバイダーは、教材を実質的に向上させる場合にのみ呼び出します。課金対象のジョブの前には、必ず以下の安全プレフライトを実行します。

  8. 最終ビデオをアセンブルし、音声、字幕のタイミング、コードの可読性、時間、再生可能な出力を確認します。

ナレーションソースポリシー

  • すべてのナレーション付きビデオには、統合されたkokoro-tts-zhモデルファミリーが提供する中国語の音声を使用します。
  • macOSのsay、Windows SAPI、ブラウザの音声合成、またはその他のオペレーティングシステムの音声を自動フォールバックとして使用しないでください。
  • Kokoroのインストール、モデルのダウンロード、音声のロード、または合成に失敗した場合は、停止して失敗を報告してください。機械的な音声に黙って代替しないでください。
  • Kokoroはプリセット音声を提供します。任意にアップロードされた話者の声をクローンするわけではありません。リンク先のリポジトリのクローンパスは、別個のStableTTSサブモジュールと、このスキルでは自己完結しておらず検証されていないモデルの重みに依存します。クローンリクエストに対しては、個別に設定・検証されたクローンバックエンドと、ユーザーがその音声を使用する許可を持っていることの確認を要求します。

必須請求プレフライト

クラウドビデオリクエストの前に、必ず以下を実行します。

  1. プロバイダーの現在の価格エンドポイント、または現在の公式価格情報を照会します。
  2. 設定された割当エンドポイントを通じてアカウントの割り当て/クレジットを照会します。
  3. 要求された時間、解像度、モデル、およびプロバイダー価格を使用して、予想最大コストを計算します。
  4. それをVIDEO_MAX_COST_PER_TASKおよび利用可能なクレジットと比較します。
  5. プレフライト結果を<OUTPUT_PROJECT>/usage/video-usage.jsonlに記録します。

価格または割り当てが不明な場合、エンドポイントが確認できない場合、クレジットが不十分な場合、または最大コストを超える場合は、ジョブを送信しないでください。プロバイダーが無料枠を宣伝していても、現在のリクエストが無料であるとは限りません。

リトライおよびポーリングルール

  • 無期限にリトライしないでください。
  • 非同期ジョブにはVIDEO_MAX_POLLSとVIDEO_POLL_INTERVAL_SECONDSを使用します。
  • 一時的なネットワーク障害またはHTTP 429/5xxエラーは、最大VIDEO_MAX_RETRIES回、上限付き指数バックオフでリトライします。
  • キュー満杯、容量不足、クレジット不足、認証、バリデーション、または価格ポリシーエラーの場合は、プロバイダーが明示的に短いRetry-Afterを提供し、かつ設定されたリトライ予算が1回のリトライを許可する場合を除き、即座に停止します。
  • ステータスポーリングに失敗したからといって、単に置き換えジョブを作成しないでください。まず元のジョブをIDで取得してください。

使用記録台帳

プレフライトとプロバイダー呼び出しごとに1つのJSONオブジェクトを<OUTPUT_PROJECT>/usage/video-usage.jsonlに追加します。APIキーや認証ヘッダーを保存しないでください。以下を含めます。

{"timestamp":"ISO-8601","provider":"name","model":"id","job_id":"id-or-null","requested_seconds":10,"actual_seconds":10,"call_count":1,"status":"succeeded","price_source":"endpoint-or-url","estimated_cost":0,"actual_cost":0,"currency":"USD","cost_known":true,"error":null}

プロバイダーが実際のコストを返さない場合は、actual_costをnullに設定し、cost_knownをfalseに設定します。黙って0を記録しないでください。最後に、総呼び出し回数、生成された時間、既知のコスト、およびコスト不明の呼び出しを集計します。

出力契約

最終ビデオに加えて、編集可能なManimソース、KokoroナレーションWAVとマニフェスト、字幕ファイル、プロバイダーセーフな設定テンプレート、レンダリングコマンド、および使用記録台帳を提供します。使用したKokoroの音声/モデル/速度を明記し、クラウドビデオAPIを呼び出さなかった場合やコストを確認できなかった場合も明確に記載します。

ソースコード、ログ、プロンプト、シェル履歴、スクリーンショット、またはコミットされた.envファイルに秘密情報を公開しないでください。環境変数を使用し、.env.exampleテンプレートのみを提供してください。

関連スキル