mcpField
V
Video Summarizer

Video Summarizer

github.com/martinopiaggi生産性23390 回インストール1 日前に更新
リポジトリ

Video Summarizer について

Video Summarizerは、動画の文字起こしと要約を行うコマンドラインスキルです。動画を扱う人向けに、オンラインリンクやローカル・クラウド上のファイルを処理し、複数の要約スタイルと出力形式を備えています。

主な機能

  1. 01YouTube字幕または音声の文字起こし
  2. 02ローカルファイル、Google Drive、Dropboxに対応
  3. 03テキスト分割とLLM処理の並列実行
  4. 04複数の要約スタイル
  5. 05Markdown、JSON、HTMLで結果を保存

活用シーン

  1. 01YouTube動画や講義ファイルの要約
  2. 02複数の動画リンクの一括要約
  3. 03Q&A、チュートリアル、重要な知見の抽出
  4. 04動画内容からMermaid概念図を作成

インストール

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

$npx skills add https://github.com/martinopiaggi/summarize --skill video-summarizer

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

同梱ファイルREADME.md

詳細

概要

このスキルは、python -m summarizer CLI ツールを実行して、動画コンテンツを文字起こしし、要約します。YouTube(字幕または音声)、ローカルファイル、Google Drive、Dropbox に対応しています。文字起こしデータは分割され、OpenAI 互換の LLM で並列処理された後、最終的な要約に統合されます。

重要:必ず以下の CLI コマンドを使用してください。動画 URL を直接取得、スクレイピング、ダウンロードしようとしないでください(webfetch や curl など)。ダウンロード、文字起こし、要約はすべて CLI が内部で処理します。

クイックスタート(ステップごとの手順)

以下の手順を正確に実行してください。

ステップ 1 -- CLI を実行する:

python -m summarizer --source "VIDEO_URL"

このツールは、summarizer.yaml で設定済みのデフォルトプロバイダーを使用します。基本的な使い方では、追加のフラグは不要です。

ステップ 2 -- 出力ファイルを読む:

CLI は成功すると、出力ファイル名を表示します。ファイルは常に、プロジェクトの作業ディレクトリを基準とする summaries/ サブディレクトリ内に保存されます。例:

[+] Saved watch_20260207_234533.md

読み込むファイルのフルパスは summaries/watch_20260207_234533.md です。

ステップ 3 -- 結果をユーザーに表示する。

以上です。3 つのステップです。

ファイルの場所

すべてのパスは、プロジェクトの作業ディレクトリ(summarizer.yaml と setup.py がある場所)からの相対パスです。

ファイル場所
設定./summarizer.yaml
API キー./.env
プロンプトテンプレート./summarizer/prompts.json
要約の出力先./summaries/<filename>.md
CLI エントリーポイントpython -m summarizer

ホームディレクトリやスキルディレクトリにある .env や設定ファイルを探さないでください。これらはプロジェクトのルートディレクトリにあります。

CLI リファレンス

python -m summarizer [OPTIONS]
必須オプション
フラグ説明
--source1 つ以上の動画 URL またはファイルパス
プロバイダーオプション
フラグ説明デフォルト
--providersummarizer.yaml で指定されたプロバイダー名YAML の default_provider
--base-urlAPI エンドポイント URL(プロバイダー設定を上書き)YAML の設定値
--modelモデル識別子(プロバイダー設定を上書き)YAML の設定値
--api-keyAPI キー(.env による自動照合を上書き).env から自動取得
ソースオプション
フラグ説明デフォルト
--typeYouTube Video、Video URL、Local File、Google Drive Video Link、Dropbox Video LinkYouTube Video
--force-downloadYouTube の字幕を使わず、代わりに音声をダウンロードするFalse
--transcriptionCloud Whisper(Groq API)または Local WhisperCloud Whisper
--whisper-modeltiny、base、small、medium、largetiny
--languageauto は利用可能な最初の YouTube 字幕トラックを選び、Whisper に言語を検出させます。明示的なコードを指定した場合は、そのコードに厳密に従いますauto
処理オプション
フラグ説明デフォルト
--prompt-type要約のスタイル(下記のスタイルを参照)YAML のデフォルト設定
--chunk-sizeテキストチャンクあたりの文字数YAML のデフォルト設定
--parallel-calls同時に行う API リクエスト数30
--max-tokensチャンクごとの最大出力トークン数4096
出力オプション
フラグ説明デフォルト
--output-dir要約の保存先ディレクトリsummaries
--output-formatmarkdown、json、または htmlmarkdown
--no-saveファイルに保存せず、標準出力にのみ表示するFalse
--verbose、-v詳細な進行状況を表示するFalse

警告: Windows では --no-save を使用しないでください。要約に含まれる Unicode 文字が標準出力をクラッシュさせる、既知のエンコード問題があります。必ずツールにファイルを保存させてから、そのファイルを読み込んでください。

設定オプション
フラグ説明
--config設定ファイルのパス(デフォルト:自動検出)
--no-config設定ファイルを無視し、CLI 引数のみを使用する
--init-configsummarizer.yaml のサンプルを生成して終了する

要約スタイル

--prompt-type とともに使用します。summarizer/prompts.json で定義されています。

スタイル目的
Questions and answersコンテンツからQ&Aを抽出
Summarizationタイトル付きの標準的な要約
Distill Wisdomアイデア、引用、参照情報を抽出
DNA Extractor核心的な真実を最大200語に凝縮
Fact Checker主張をTRUE/FALSE/MISLEADINGのラベルで検証
Tutorialコンテンツから手順を順を追って説明
Researchより広い文脈を踏まえた詳細な分析
Reflections述べられている内容を超えた哲学的な考察
Mermaid DiagramMermaid.js構文による概念の視覚的なマップ
Essay Writing in Paul Graham StylePaul Grahamのスタイルによる250語のエッセイ
Only grammar correction with highlights太字のハイライト付きで文法を修正

使用例

YouTube動画を要約する(最も簡単な形式)
python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID"
# Output: summaries/watch_YYYYMMDD_HHMMSS.md
プロバイダーを指定する
python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID" --provider gemini
# Output: summaries/watch_YYYYMMDD_HHMMSS.md
Distill Wisdomで重要な洞察を抽出する
python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --provider openrouter \
  --prompt-type "Distill Wisdom"
# Output: summaries/watch_YYYYMMDD_HHMMSS.md
Perplexityを使って動画の主張をファクトチェックする
python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --base-url "https://api.perplexity.ai" \
  --model "sonar-pro" \
  --prompt-type "Fact Checker"
# Output: summaries/watch_YYYYMMDD_HHMMSS.md
講義からMermaid図を生成する
python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --provider gemini \
  --prompt-type "Mermaid Diagram"
# Output: summaries/watch_YYYYMMDD_HHMMSS.md
ローカルファイルを要約する
python -m summarizer \
  --type "Local File" \
  --source "./lecture.mp4" \
  --provider groq
# Output: summaries/lecture_YYYYMMDD_HHMMSS.md
複数の動画を一括処理する
python -m summarizer \
  --source "URL1" "URL2" "URL3" \
  --provider gemini \
  --prompt-type "Summarization"
# Output: one file per URL in summaries/
設定ファイルを使わずに実行する(すべてのフラグを明示)
python -m summarizer \
  --source "https://youtube.com/watch?v=VIDEO_ID" \
  --base-url "https://openrouter.ai/api/v1" \
  --model "google/gemini-2.0-flash-exp:free" \
  --api-key "sk-or-v1-YOUR_KEY" \
  --prompt-type "Tutorial" \
  --no-config
# Output: summaries/watch_YYYYMMDD_HHMMSS.md

出力の確認

CLIの実行後は、必ず summaries/ の出力ファイルを読んでください。

# The CLI prints something like:
# [+] Saved watch_20260207_234533.md
#
# The file is at:
summaries/watch_20260207_234533.md

フルパス summaries/<filename>(プロジェクトルートからの相対パス)に対してReadツールを使用してください。

複数ステップのワークフロー

包括的な分析を行うには、同じ動画に対して複数のスタイルを順に実行します。

  1. まずSummarizationで概要を手早く把握します
  2. Distill Wisdomを使って重要な洞察を抽出します
  3. Fact Checkerを実行し(できればPerplexityを使用)、主張を検証します
  4. 視覚的な参照用にMermaid Diagramを生成します

エラー処理

  • APIキーが見つからない場合、ツールは.envでプロバイダーURLのキーワードに一致するキーを確認します
  • YouTubeの字幕を利用できない場合、ツールは音声をダウンロードしてWhisperで文字起こしする方法に切り替えます
  • --language autoは英語を強制しません。最初に利用可能なYouTubeの字幕トラックを使用し、Whisperに言語を検出させます。
  • --verboseを使うと、進捗の詳細を確認して問題をデバッグできます
  • クラウドWhisperにはGroq APIキーが必要です(無料プランを利用できます)

設定ファイル

すべてプロジェクトの作業ディレクトリにあります。

  • summarizer.yaml:プロバイダー定義(base_url、model、chunk-size)とデフォルト設定
  • .env:APIキー。URLのキーワードに基づいて自動的に照合されます(例:generativelanguage = YOUR_KEY)
  • summarizer/prompts.json:文字起こしテキストのプレースホルダーとして{text}を使うプロンプトテンプレート

テスト

python -m pytest tests/ -v

コメント