mcpField
W
watch-video

watch-video

github.com/tomgranotクリエイティブ・メディア755 回インストール15 週間前に更新
リポジトリ

watch-video について

watch-video は、映像で確認できる事実、発話内容、推論を分けて、タイムスタンプ付きの動画分析を作成するスキルです。ローカル動画や取得可能な公開 URL を対象に、フレーム抽出と証拠確認を進めます。

主な機能

  1. 01タイムスタンプ付きの所見
  2. 02映像と音声の証拠を区別
  3. 03粗密を切り替えたフレーム抽出
  4. 04字幕と文字起こしの処理
  5. 05構造化レポートの検証

活用シーン

  1. 01映像が発話内容を裏付けるか確認
  2. 02動画デモを時刻付きで検証
  3. 03字幕と画面上の出来事を照合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tomgranot/watch-video --skill watch-video

インストール後、Claude Code で/watch-videoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
requirements-url.txt
requirements.txt
THIRD_PARTY_NOTICES.md
agents/
openai.yaml
references/
analysis-protocol.md
scripts/
acquire.py
normalize_transcript.py
package_skill.py
run.py
sample_frames.py
setup_runtime.py
smoke_test.py
validate_report.py
tests/
test_regressions.py

詳細

動画を見る

動画に何が映り、何が語られ、何が裏付けられるかを、タイムスタンプ付きで記録します。観察した内容、発言された主張、推論を分けてください。

要件

ローカルファイルには ffmpeg、ffprobe、Python 3.10 以降、Pillow が必要です。公開 URL には yt-dlp も必要です。SKILL_DIR を、このファイルがあるディレクトリに設定してください。コマンドは $SKILL_DIR/scripts/run.py 経由で実行し、存在する場合はプライベートな .venv を使用してください。ランタイムが不足しており、ローカルでの依存関係のインストールが許可されている場合は、python3 "$SKILL_DIR/scripts/setup_runtime.py" を実行してください。サインイン、ブラウザーの Cookie の読み込み、DRM や有料コンテンツの回避、アクセス制御の迂回は行わないでください。

ワークフロー

  1. 専用の分析ディレクトリを作成します。ソース動画は変更しないでください。

  2. ソースとプラットフォームの字幕を取得します。

    python3 "$SKILL_DIR/scripts/run.py" acquire <video-path-or-url> \
      --output-dir <analysis-dir> [--language en]
    

    ローカルファイルを優先します。公開 URL は、yt-dlp でサインイン、Cookie、有料コンテンツ、DRM、ブラウザーの自動操作なしに直接調査およびダウンロードできる場合に限り受け付けます。直接取得に失敗した場合は、許可を得たローカルコピーの提供を依頼してください。URL の場合は、まずプラットフォームの手動字幕を確認し、次に自動字幕を確認します。どちらもない場合は transcript unavailable と記録し、文字起こしは生成せず、映像の分析を続けてください。ローカルファイルの場合は、同名の .vtt、.srt、.json、.json3 のサイドカーファイルを検出してください。

  3. <analysis-dir>/source.json と <analysis-dir>/transcript.md が存在する場合は読み込みます。字幕は音声の証拠として扱い、映像の証拠としては扱わないでください。

  4. 粗い映像インデックスを作成します。

    python3 "$SKILL_DIR/scripts/run.py" sample-frames <video-path-from-source.json> \
      --output-dir <analysis-dir>/visual-overview --mode overview --scene-threshold 0.32
    
  5. visual-overview/index.md に記載されたすべてのコンタクトシートを開きます。映っている出来事、実演、スライドの切り替わり、画面上のテキスト、字幕との顕著な食い違いを記録します。

  6. 重要なタイムスタンプや曖昧なタイムスタンプの周辺で、対象を絞った高密度のパスを実行します。

    python3 "$SKILL_DIR/scripts/run.py" sample-frames <video> \
      --output-dir <analysis-dir>/window-<start> \
      --mode dense --start <seconds> --end <seconds> --fps 4
    

    --mode every-frame は、短いフォレンジック調査区間に限って使用してください。報告されたソースのフレームレートで FFmpeg がサンプリングするため、可変フレームレートの素材では、サンプルの重複や欠落が生じる場合があります。スクリプトはデフォルトで出力数を制限します。ユーザーが可能な限り高密度の調査を必要とする場合に限り、上限を引き上げてください。

  7. タイムスタンプ付きで調査結果をまとめます。実質的な主張には、根拠の種類を次のように明記してください。

    • observed:サンプリングしたフレームで目視できる
    • spoken:字幕または提供された文字起こしに含まれている
    • inferred:観察した証拠または発言された証拠に基づく合理的な結論
  8. 裏付けの状況を supported、conflicted、not_found のいずれかで示します。確信度が低い場合は、欠けている証拠を明記してください。

  9. 詳細な分析では、references/analysis-protocol.md のスキーマに従って report.json を保存し、検証します。

    python3 "$SKILL_DIR/scripts/run.py" validate-report <analysis-dir>/report.json \
      --manifest <analysis-dir>/visual-overview/manifest.json
    

    レポートで引用する各高密度ウィンドウについて、--manifest <path> を繰り返し指定してください。

分析ルール

  • まず粗く分析し、その後、重要な区間を時間的に高密度で調査します。
  • 文字起こしにある主張を、動画が目視で証明している内容として説明しないでください。
  • 字幕からの引用は控えめにし、通常は言い換えてください。
  • チャプター、調査結果、食い違い、指定された場面にはタイムスタンプを付けてください。
  • スライド、コード、図、または小さなインターフェースの文字が重要な場合は、より高解像度でフレームを調査してください。
  • 字幕が自動生成、欠落、不完全、または音声と同期していない場合は、その旨を記載してください。
  • 多数の散在する事実に関する質問には、広範囲を一度に走査するのではなく、対象を絞ったパスで回答してください。
  • 証拠なしに、身元、意図、因果関係、または画面外の出来事を推論しないでください。

サンプリングモード、証拠スキーマ、長時間動画の扱い、失敗時のケースについては、references/analysis-protocol.md をお読みください。

コメント