mcpField
V
video-production

video-production

github.com/casper-studiosクリエイティブ・メディア15276 回インストール8 週間前に更新
リポジトリ

video-production について

レッスン動画をコース全体の動画にまとめるためのワークフローガイドです。コース制作者や動画編集者向けに、Google Driveからの取得、タイトルカードの追加、結合、YouTube用タイムスタンプの作成を案内し、処理はローカルで行います。

主な機能

  1. 01Google Driveから動画をダウンロード
  2. 02タイトル解析と動画メタデータ取得
  3. 03レッスン用タイトルカードの生成
  4. 04FFmpegによるセグメント結合
  5. 05タイムスタンプとYouTube説明文の作成

活用シーン

  1. 01レッスン動画をコース全体の動画にまとめる
  2. 02コース動画にタイトルカードとチャプター時刻を追加

インストール

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

$npx skills add https://github.com/casper-studios/casper-marketplace --skill video-production

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

同梱ファイル

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

references/
ffmpeg.md
title-slides.md
workflow.md
youtube-description.md
scripts/
create_title_slides.py
gdrive_video_download.py
generate_youtube_description.py
stitch_videos.py

詳細

動画制作

概要

個別のレッスンファイルを、タイトルスライドと YouTube 用の自動生成タイムスタンプを付けて、コース動画にまとめます。

クイック判断ツリー

What do you need?
│
├── Full course assembly (end-to-end)
│   └── references/workflow.md
│   └── Combines all scripts below
│
├── Download videos from Drive
│   └── Script: scripts/gdrive_video_download.py
│
├── Create title slides
│   └── Script: scripts/create_title_slides.py
│
├── Stitch videos together
│   └── Script: scripts/stitch_videos.py
│
└── Generate YouTube description
    └── Script: scripts/generate_youtube_description.py

環境のセットアップ

Google Drive の OAuth(google-workspace スキルと同じです)。

システム要件
  • FFmpeg がインストールされ、PATH に設定されていること
  • Python 3.9 以降

ワークフロー全体

# Full course assembly from Drive folder
python scripts/stitch_videos.py \
  --folder "https://drive.google.com/drive/folders/xxx" \
  --output "Complete Course.mp4" \
  --slide-duration 3

パイプラインの手順

  1. ダウンロード - Drive フォルダーからすべての動画を取得します
  2. タイトルを解析 - [e1] Intro 形式から整った名前を抽出します
  3. メタデータを取得 - FFprobe で長さと解像度を取得します
  4. スライドを生成 - 各レッスンのタイトルカードを作成します
  5. 連結リストを作成 - video1 → slide2 → video2 → ...
  6. FFmpeg で結合 - すべてのセグメントを連結します
  7. タイムスタンプを計算 - 累積時間を追跡します
  8. 説明文を生成 - YouTube 用の Markdown を作成します

出力

ファイル説明
{output_name}.mp4最終的に結合された動画
youtube_description.mdタイムスタンプ付きの説明文
metadata.json処理情報

パフォーマンス

入力時間出力サイズ
5 本の動画(30 分)約 5 分約 1.5 GB
10 本の動画(1 時間)約 10 分約 3 GB
20 本の動画(2 時間)約 20 分約 6 GB

セキュリティに関する注意事項

認証情報の取り扱い
  • Drive へのアクセスには Google OAuth 認証情報を使用します(google-workspace スキルを参照)
  • mycreds.txt と client_secrets.json は git にコミットされません
  • ローカルでの動画処理に追加の API キーは必要ありません
データのプライバシー
  • すべての動画処理は FFmpeg を使ってローカルで行われます
  • 動画コンテンツが外部のクラウドサービスにアップロードされることはありません
  • ソース動画は Google Drive からローカルの .tmp/ にダウンロードされます
  • 最終動画は手動でアップロードするまでローカルに保存されます
  • メタデータ JSON にはファイル名とタイムスタンプのみが含まれます
アクセススコープ
  • Google Drive:ダウンロードには drive.readonly で十分です
  • Google Drive:最終動画のアップロードには drive が必要です
  • 外部の動画処理 API は使用しません
コンプライアンスに関する考慮事項
  • ローカル処理:エンコードと結合はすべてローカルで行われます(プライバシーを保護)
  • クラウドへのアップロードなし:処理中に動画が端末の外へ出ることはありません
  • コンテンツの権利:ソース動画コンテンツを使用する権利があることを確認してください
  • コースコンテンツ:教育コンテンツの配布に関するライセンスを確認してください
  • YouTube の利用規約:生成される説明文は YouTube のガイドラインに準拠します
  • ストレージ:大容量の動画ファイルを保存できる十分なローカルディスク容量が必要です
  • クリーンアップ:処理後に .tmp/ 内の一時ファイルを削除してください

トラブルシューティング

よくある問題
問題:FFmpeg が見つからない

症状:「FFmpeg not found」または「command not found: ffmpeg」 原因: FFmpeg がインストールされていないか、システムの PATH に設定されていません 解決策:

  • FFmpeg をインストールします:brew install ffmpeg(macOS)または ffmpeg.org からダウンロードします
  • インストールを確認します:ffmpeg -version
  • 標準以外の場所にインストールした場合は、FFmpeg を PATH に追加します
  • インストール後にターミナルを再起動します
問題:コーデックの不一致/互換性のない動画

**症状:**結合中に「Non-monotonous DTS」またはコーデックエラーが発生します **原因:**ソース動画のコーデック、解像度、またはフレームレートが異なります 解決策:

  • 結合前に、すべてのソース動画を同じ形式に再エンコードします
  • FFmpeg で形式を統一します:ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
  • 解像度を統一します(例:すべて 1920x1080)
  • すべての動画でフレームレートを統一します(例:すべて 30fps)
問題:音声と映像が同期しない

**症状:**時間の経過とともに、音声が映像からずれていきます **原因:**フレームレートが一定でない、または可変フレームレートのソースが含まれています 解決策:

  • すべてのソース動画で固定フレームレートを使用します
  • -vsync cfr フラグを付けて再エンコードします
  • 異なるソースやデバイスの動画を混在させないでください
  • ファイル間で音声のサンプルレートが一致していることを確認します
問題:ディスク容量が不足しています

症状:「No space left on device」と表示される、または出力が不完全になる **原因:**動画の処理に必要な空き容量が足りません 解決策:

  • 使用可能なディスク容量を確認します:df -h
  • .tmp/ ディレクトリにある古いファイルを削除します
  • サイズの大きいソース動画を外部ドライブに移動します
  • 一度に処理する動画の数を減らします
問題:Google Drive からのダウンロードに失敗します

**症状:**Drive フォルダーから動画をダウンロードできません **原因:**OAuth の問題、権限、またはネットワークのタイムアウトです 解決策:

  • Google OAuth の認証情報を確認します(google-workspace スキルを参照)
  • フォルダーの共有権限を確認します
  • 最初に単一のファイルをダウンロードしてテストします
  • ネットワーク接続に問題がないか確認します
問題:タイトルスライドが生成されません

**症状:**最終動画にタイトルカードがありません **原因:**フォントまたは画像生成の問題です 解決策:

  • ImageMagick または Pillow がインストールされていることを確認します
  • カスタムフォントを指定している場合は、フォントファイルが存在することを確認します
  • タイトルテキストに特殊文字が含まれていないか確認します
  • まずデフォルトのフォント設定で試します

リソース

  • references/workflow.md - 動画コースのワークフロー全体

統合パターン

コース全体のパイプライン

スキル: google-workspace → video-production → google-workspace ユースケース: コース動画をエンドツーエンドで組み立てます フロー:

  1. Google Drive フォルダーからレッスン動画をダウンロードします
  2. タイトルスライドを生成し、すべての動画を結合します
  3. 最終動画を Drive にアップロードし、YouTube の説明文を生成します
トランスクリプトからタイムスタンプを生成

スキル: transcript-search → video-production ユースケース: 会議の録画から YouTube の説明文を生成します フロー:

  1. トランスクリプトを検索して関連する会議を見つけます
  2. トランスクリプトからトピックのタイムスタンプを抽出します
  3. チャプターマーカー付きの書式設定された YouTube の説明文を生成します
コンテンツからタイトルスライドを作成

スキル: content-generation → video-production ユースケース: 動画用のブランド付きタイトルカードを作成します フロー:

  1. content-generation でタイトルスライドの画像を生成します
  2. スライドを動画対応形式でエクスポートします
  3. 動画セグメントの間にタイトルスライドを挿入します

コメント