Communitygithub.com

shubham001312/fish-video-skill

あらゆるトピックについて、ショート、リール、TikTok、YouTube、LinkedIn用のプレミアムでアップロード可能な動画を作成します。説明動画、プロモーション、製品ツアー、画面収録チュートリアル、モチベーションショート、または「この動画のようなもの」(参考リンク)のリクエストに対応。最初の一度だけ厳密なインタビューを行い、最後のレビューまで質問はしません。トレンドや事実を調査し、参考動画を分析し、ライセンス済みの実際のアセットを収集し、フォーカスズームとクリック音付きで画面を収録し、3Dカメラを使用した決定論的なモーショングラフィックス(ペーパーコラージュ、キネティックタイプグラフィー、ネオン図解、グローメタファー、ホワイトボード)をレンダリング。自然な声、電話スピーカーに最適化されたミックス、ワードポップキャプションを追加し、QAと自己レビューを実行。動画、サムネイル、タイトル、説明文、タグ、クレジットをパッケージ化し、許可を得てクリーンアップします。

fish-video-skill とは?

Fish Video Skill v2は、あらゆるトピックについて、ショート動画、リール、TikTok、YouTube、LinkedIn向けのプレミアム品質の動画を生成するAIエージェントスキルです。Claude Code、Cursor、Codexなどの開発者ツールで動作するように設計されています。このスキルは、最初の一度きりの徹底的なインタビューでトピック、プラットフォーム、スタイル、色、声、音楽、SFX、アセット、画面収録、APIキーを収集し、その後は最終レビューまで一切質問をしません。トレンドや事実の調査、参考動画の分析、ライセンス済みアセットの収集、フォーカスズームとクリック音付きの画面収録を行い、3Dカメラを使用した決定論的なモーショングラフィックス(ペーパーコラージュ、キネティックタイプグラフィー、ネオン図解、グローメタファーなど)をレンダリングします。自然な合成音声、電話スピーカー向けに最適化されたオーディオミックス、ワードポップキャプションを追加し、徹底的なQAとセルフレビューを実施した後、動画、サムネイル、タイトル、説明文、タグ、クレジットをパッケージ化し、最後にユーザーの明示的な許可を得てのみ作業ファイルをクリーンアップします。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/shubham001312/imutechz-skills/tree/HEAD/skills/fish-video-skill

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

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

ドキュメント

Fish Video Skill v2

あなたは1回の会話から1本の動画を作成します。その品質は、参考分析で分析されたトップショート動画の品質に達する必要があります:

  • 約1秒ごとに新しい何かが画面に現れる
  • 深度のある実際のアセット(テクスチャ、コンタクトシャドウ、グロー)
  • 3倍のヒーローワードコントラストを持つタイポグラフィ
  • オブジェクトをポータルとして使用したトランジション
  • すべての動きの前に着地するスウィッシュ、リビールで終わるライザー、フラッシュカット上のインパクト
  • 聴こえる音楽の上に乗った声

汎用的な声のスライドショーは、QAを通過しても失敗です。

ルーター: タスクに到達したらガイドを読み込む

現在のステップに必要なものだけを読んでください:

譲れないワークフロー

0 診断 ─▶ 1 インタビュー(すべての質問、一度だけ) ─▶ 確認 ─▶ 2 調査 + トレンド + 参考(並列)
  ─▶ 3 アセット + 画面収録 + 音声(並列) ─▶ 4 ストーリーボード(すべての単語をあなたが書く) ─▶ ゲート
  ─▶ 5 スチル(ルック) ─▶ 6 レンダリング ─▶ 7 QA + レビューループ(修正、再レンダリング、繰り返し) ─▶ 8 パッケージ ─▶ 9 最終レビュー ─▶ 10 クリーンアップ(許可を得て)

ルール:

  • 最初の一度だけのインタビュー。 ユーザーの入力を必要とするすべての質問はステップ1で行われます。それには声とトーン、色、画面の手順、APIキー(各キーの取得方法を含む)、およびインストールするオプションの拡張機能が含まれます。fishvideo interview <dir> --confirm の後は、質問をしません。回答とスタイルレシピから判断してください。以下の場合のみ、再度ユーザーに連絡します:

    • (a) checkpoints でユーザーが選択したオプションの停止ポイント
    • (b) ユーザーが実行しなければならないデスクトップ録画;インタビューで同意済みであり、開始する正確なタイミングを伝えます
    • (c) 最終レビュー
    • (d) クリーンアップの許可

    ユーザーが後で異なることを言った場合は、ユーザーに従ってください。

  • インタビューが確認されるまでスクリプトを絶対に書かないでください。 fishvideo script、all、およびフルrenderは、fishvideo gateが通るまで拒否します。

  • テンプレートテキストを絶対に出荷しないでください。 スキャフォールドはTODOのスケルトンです。あなたはこの動画のために、画面上のすべての単語とナレーションの行を新しく書きます。そのため、ゲートはTODO、v1の決まり文句(「X、解説」、「60秒で」、「ご視聴ありがとうございました」)、およびexamples/からコピーされた行をブロックします。例は構造を示すものであり、内容ではありません。

  • 解説には図解が必要です。 goal: explainの動画には、少なくとも1つのdiagram、whiteboard、neonline、またはsplitリビールメカニズムのシーンが必要です。箇条書きのリストは説明ではありません。

ステップ0: 診断

セットアップ(初回のみ)はREADME.mdにあります:npm install、venv、およびpip install -r requirements.txt。次に以下を実行します:

.venv/Scripts/python scripts/fishvideo.py doctor --keys      # Windows (macOS/Linux: .venv/bin/python)

不足しているキーと拡張機能をメモします。それらについてインタビューのラウンド8で正確に尋ねます。

最良の結果を得るためのセットアップ(必ず行ってください、スキップしないでください):

  • 自分で拡張機能をインストールします。 doctorが不足している拡張機能を示した場合、ユーザーにやらせずに、スキルのvenvにインストールしてください:pip install "rembg[cpu]"(切り抜き)、pip install kokoro soundfile(自然なローカル音声)、pip install faster-whisper(ユーザー自身のボイスオーバーの位置合わせ)。また、SFXライブラリがない場合は、fishvideo assets sfx-packを一度実行してください。何をインストールしているのか、なぜかを1行でユーザーに伝えます。ユーザーがラウンド8で拒否した拡張機能のみスキップします。
  • APIキーを尋ねます。 これらはオプションです:無料のフォールバックを通じてすべてが機能します。しかし、最良の結果をもたらします:ElevenLabsは最も自然な音声を提供し、Pexels/Pixabayは最も多くのストック写真と動画を提供し、Freesoundは最も多くのSFXを提供し、YouTube Data APIはトレンドチャートを提供します。ラウンド8では、この動画に関連する不足しているキーを尋ね、それぞれの取得方法を説明し(無料のサインアップリンクはdoctor --keysにあります)、「いいえ」や「後で」を押し付けることなく受け入れます。これはインタビュー内でのみ行い、作成が開始された後は決して行いません。

ステップ1: インタビュー(厳格)

fishvideo new projects/<slug> --prompt "<ユーザーのリクエスト、そのまま>"
fishvideo interview projects/<slug>            # JSON: 未回答の質問、8ラウンドにグループ化

質問バンクはconfig/interview.yamlにあります。8ラウンド、約30の質問があります:

ラウンドカバー範囲
1目的
2形状とスタイル
3色、タイポグラフィ、テクスチャ
4声、配信、音楽、SFX
5実際のアセットと画面収録
6コンテンツ、事実、CTA、言語
7キャプション、サムネイル、承認
8APIキーと拡張機能

単語または分野のみ? ラウンド1の前に、5つのトレンド角度を生成します:yt suggest、yt search --recent-days 30、trends(haikuサブエージェント、並列)、トピックから動画へに従って。それらをtopic質問として提供します。選択された角度がその後のすべてを決定します。

質問の仕方:

  • AskUserQuestion呼び出しごとに1ラウンドずつ(最大4質問)尋ね、オプションをそのまま使用します。推奨オプションが最初に来ます。「その他」は常に利用可能です。
  • 自由記述の質問(free_text: true)は、そのラウンドの通常のメッセージで、そのラウンドの多肢選択式の呼び出しと一緒に行います。
  • プロンプトがすでに明確に回答している場合(from_promptで検出されたものが表示される)のみ質問をスキップし、それでも回答を記録します。
  • 各回答を記録します:fishvideo interview <dir> --set style=paper-collage --set platforms='["shorts"]'。回答はbrief.yamlにマッピングされます:パレットはbrand.colorsに、ムードはスコアとテンポに、声と配信は音声設定とポストチェーンに、スタイルはテクスチャ、ペーシング、モチーフにマッピングされます。
  • 声: ラウンド4と6の後(言語と配信がわかったら)、fishvideo voices <dir> --auditionを実行します。build/auditions/内のファイルパスをユーザーに通知して再生できるようにし、選択させます。これもインタビューの一部です。
  • キー: ユーザーの回答に関連する不足しているキーのみを提供します。各キーの取得方法(バンク内のテキスト)と、それがない場合の影響を説明します。ユーザーがキーを貼り付けた場合、--set keys_paste=...で記録します。キーはスキルのgitignoredな.envに保存され、エコー、ログ、コミットされることはありません。ユーザーが拡張機能を選択した場合、今すぐvenvにインストールします(pip install "rembg[cpu]"、kokoro soundfile、faster-whisper)。
  • 最後に、fishvideo interview <dir> --summaryをユーザーに読み返します。単純な「はい、進めて」を求め、--confirmを実行します。

ステップ2: 調査、トレンド、参考(並列実行)

これらを並列サブエージェントとして起動します。モデルルーティング:haikuはフェッチとルックアップスイープ用、sonnetは分析とルーチンコード用、そしてあなた(opus)はスクリプト、ストーリーボード、デザイン判断、最終レビュー用です。各エージェントにプロジェクトパスと生成する正確な出力ファイルを指定します。サブエージェントはレポートファイルを書き込めない場合があります;その場合はテキストを返すので、あなたが保存します。

タスクコマンドエージェント
事実とソースウェブ検索、次に fishvideo research <dir> --url ... → research/facts.mdhaiku
トレンドfishvideo trends <dir> --topic "<topic>" --region <IN/US> → research/trends.md(タイトルフォーミュラ、タグ、フック、現在ランキングから導き出された理想的な長さ)haiku
YouTube検索fishvideo yt search "<q>" -n 20 [--recent-days 30]、yt info、yt subs、yt suggesthaiku
参考動画分析(ユーザーが提供した各リンク、および選択したスタイルのトップトレンド例1〜2つ)fishvideo yt download <url> --purpose reference --project <dir>、次に fishvideo dissect <dir>/reference/<file>.mp4 --out <dir>/reference/dissect --fps 4 [--vtt subs.vtt]。すべてのシート、スペクトログラム、timeline.mdを読み、次に reference/analysis.md を参考動画分析の9セクションで書くsonnet(ビジョン)

分析から数値を取得します:変化率、スウィッシュのタイミングとレベル、声の上の音楽ベッドのdB、ダッキングの深さ、ラウドネス、キャプションスタイル。それらをbrief.yaml → match:に書き込み、ストーリーボードとミックスがそれらに従えるようにします。技術をコピーし、コンテンツはコピーしません。

ステップ3: アセット、画面収録、音声(並列実行)

実際のアセット(assets.policyがmixedの場合):

  • 検索:fishvideo assets search <dir> "<noun>" --kind photo|video|music|sfx [--providers wikimedia,pexels]。assets/_candidates/のプレビューを開いて確認します。
  • 選択したものをダウンロード:fishvideo assets get <dir> <ids>。すべてのファイルはライセンスとともにassets/credits.jsonに記録されます。
  • 切り抜きを作成:fishvideo assets cutout in.jpg out.png(rembg、isnet-general-useモデル;非商用のデフォルトモデルは絶対に使用しないでください)。
  • Bロールを準備:fishvideo assets clip <dir> <file> <clip_id> --start S --dur S でfootageシーン用のフレームを生成します。
  • CC-BYのYouTubeセクションを取得:fishvideo yt clip <url> <start> <end> <dest> --project <dir>。CC以外の動画は拒否します。
  • 許可されるライセンス:CC0、PD、Pexels/Pixabayライセンス、CC-BY、CC-BY-SA(クレジット付き)。NCやNDは不可。CC以外のYouTube動画、参考動画からの映像、ロゴの再描画、実在の人物の肖像を誤解を招く方法で使用することも不可。

画面収録:

  • website:captures:の下のショットをリストし、fishvideo capture <dir>を実行します。仮想時間で読み取り専用で録画します。
  • desktop:fishvideo screenrec record <dir> <shot> --seconds N [--window "Title"] [--scale 2]。開始前に、ユーザーに実行する正確な手順を伝えます。F8でマークをドロップ、F9で停止します。
  • files:fishvideo screenrec import <dir> <shot> recording.mp4。

3つすべてが同じキャプチャフォルダを生成します。tourシーン(frame: inset)は、グローカーソル、クリックリップル、クリックSFX、カーソルへの1.6〜2倍ズーム、スポットライト、STEPカードを追加します。ズームが鮮明に保たれるよう、スケール2で録画します。

音楽:

  • ライブラリトラック:assets search <dir> "<brief.music.search>" --kind music、次にassets get、ファイルをassets/music/に置きます。
  • または合成スコアを残します。music.source: synthを設定して強制します。

SFX: fishvideo assets sfx-packを一度実行します(Kenney CC0)。assets search --kind sfx(Freesound CC0)でassets/sfx/<cue-type>/にさらに追加します。

音声: ナレーションを書き(ステップ4)、次にfishvideo voice <dir>を実行します。実際のクリップに合わせてシーンを再タイミングするためにストーリーボードを再実行します。ユーザーが自分のナレーションを録音した場合、代わりにfishvideo voiceover <dir> recording.wavを実行します:faster-whisperを使用して録音をスクリプトに位置合わせし、行ごとにカットします。

感情: 各シーンにmood:(curious、tense、urgent、excited、warm、serious、reflective、triumphant、neutral)を設定します。これにより、行ごとの速度とピッチ、およびElevenLabsのスタイルが設定されます。句読点はすべてのエンジンで配信を形成します:...はポーズ、?と!はトーンを上げ、短い文はパンチを効かせます。ビート全体でムードを変化させます:40秒間フラットなトーンは「汎用的な声」の苦情です。行内の無音の部分は自動的にカットされます(pacing.max_word_gap)。

音楽のタイミング: ライブラリトラックの場合、fishvideo beats <track>を実行します。ストーリーボードのbpmをそのテンポに設定し、music.offsetを設定して、ビートまたはドロップが最大のリビールと一致するようにします。

画面収録: fishvideo screenrec tighten <dir> <shot>を実行して、アイドル時間をスピードアップします。ローディングスピナーを視聴者に見せないでください。

ステップ4: ストーリーボード(あなたが書く)

fishvideo script <dir>を実行します。スタイルレシピ(config/styles.yaml、スタイルレシピ)からstoryboard.yamlを、TODOで埋め尽くされたビートのスケルトンとしてスキャフォールディングします。そのタイミングはプレースホルダーです。次に、以下の順序で適切に書き直します:

  1. すべてのTODOを置き換えます:コピー、パラメータ、ナレーション。シーンカタログの上部の表に、必要なパラメータがリストされています。
  2. `brief.pu

...

[Translation truncated]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル