video-fetch-and-summarize について
video-fetch-and-summarizeは、URLから動画をダウンロードし、GeminiでMarkdownの要約を作成するスキルです。動画の整理に使え、抽出内容の指定や、処理済み動画を除外する再実行にも対応します。
主な機能
- 01URLまたはテキストファイルから動画URLを抽出
- 02動画をMP4でダウンロード
- 03GeminiでMarkdown要約を作成
- 04カスタムプロンプトやファイルに対応
- 05再実行時に既存の出力をスキップ
活用シーン
- 01複数動画の要約と要点をまとめる
- 02動画からツール、価格、タスクを抽出
- 03ログイン後に見られる動画を要約
- 04新しい動画を追加して再処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ maystudios/ claude-skills --skill video-fetch-and-summarizeインストール後、Claude Code で/video-fetch-and-summarizeを入力して読み込まれたか確認します。
同梱ファイルREADME.mdscripts/fetch_and_summarize.py
詳細
動画の取得と要約
URLから動画をダウンロードし、Geminiを使って動画ごとにMarkdown形式の要約を生成します。完全に自己完結しており、ほかのスキルは必要ありません。
出力構成
<output_dir>/
<Video_Title>/
<uploader>_<id>.mp4
summary.md
前提条件
GEMINI_API_KEY環境変数が設定されていることyt-dlpとgoogle-genai— 見つからない場合、初回実行時に自動インストールされますpy(Windows)またはpython3としてPythonを利用できること
スクリプト
scripts/fetch_and_summarize.py
使い方
# Direct URLs — default summary
py scripts/fetch_and_summarize.py "https://..." "https://..." -o ./output
# File containing URLs (TXT, Markdown, or any text file)
py scripts/fetch_and_summarize.py links.txt -o ./output
# Custom prompt (inline) — replaces default summary format
py scripts/fetch_and_summarize.py "https://..." --prompt "Extract all mentioned tools and prices"
# Custom prompt (from file) — replaces default summary format
py scripts/fetch_and_summarize.py links.txt --prompt-file my-prompt.txt
# With browser cookies (for private/login-required content)
py scripts/fetch_and_summarize.py links.txt --cookies-from-browser chrome
Claude がユーザーの引数を処理する方法
ユーザーがこのスキルを呼び出した場合:
- ユーザーがカスタムプロンプトまたは抽出の目的(例:「言及されているすべてのツールを抽出する」「料金に注目して要約する」「アクションアイテムを一覧にする」)を指定した場合は、
--prompt "..."を使って渡します。 - ユーザーがプロンプトファイルのパスを指定した場合は、
--prompt-file path/to/file.txtを使って渡します。 - ユーザーが具体的な指示を指定していない場合は、
--promptを指定せずに実行し、デフォルト形式を使います。 - カスタムプロンプトはデフォルトの内容を追加するのではなく、完全に置き換えます。
ワークフロー
- 指定された引数および/またはファイルからURLをすべて抽出します(正規表現ベースで、あらゆるテキスト形式に対応)。
- URLごとに、以下を実行します。
a.
yt-dlp --dump-jsonで動画のメタデータを取得し、フォルダー名に使うタイトルを取得します。 b. 最高画質のMP4として、<output>/<Title>/に動画をダウンロードします。 c. MP4をGemini Files APIにアップロードし、状態がACTIVEになるまで待ちます。 d. Markdown形式の要約を生成し(カスタムまたはデフォルトのプロンプトを使用)、Geminiストレージからファイルを削除します。 e. 要約を<output>/<Title>/summary.mdとして保存します。 - MP4とsummary.mdの両方がすでに存在する動画はスキップします(何度実行しても結果が変わらないようにします)。
ダウンロードの詳細(yt-dlp)
- 形式:
bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best— 最高画質、常にMP4 - ファイル名のパターン:
{uploader}_{video_id}.mp4— 例:DesignMotion_DUf3nehjIg7.mp4 - デフォルトで
--no-playlistが設定されます(単一の動画のみ)。 - 対応プラットフォーム:YouTube、Instagram(投稿/リール)、TikTok、Twitter/X、Facebook、Vimeo、Redditなど、1,000以上
非公開またはログインが必要なコンテンツの認証
py scripts/fetch_and_summarize.py links.txt --cookies-from-browser chrome
# also works with: firefox, edge, safari
ユーザーは、指定したブラウザーでプラットフォームにログインしている必要があります。
要約の詳細(Gemini)
- モデル:
gemini-3-flash-preview - Gemini Files API経由でアップロードします(大きな動画ファイルに対応)。
- アップロードしたファイルは生成後にGeminiストレージから自動削除されます(いずれにせよ上限は48時間です)。
- 要約の言語は、動画で話されている言語または表示されている言語に一致します。
デフォルトの出力形式(カスタムプロンプトが指定されていない場合)
# [Video Title]
## Summary
[2-3 sentence description of the video and its main topic]
## Key Points
- key point 1
- key point 2
- ...
## Core Content & Takeaways
[Central message and most important insight, 2-4 sentences]
---
*Auto-generated with Gemini API*
注意事項
- 出力先ディレクトリのデフォルトは現在の作業ディレクトリです。
- フォルダー名は動画タイトルをサニタイズして作成されます(最大80文字、特殊文字は置き換えられます)。
- すでに処理済みの動画は、再実行時にスキップされます。
- Gemini APIが503(過負荷)を返した場合は、スクリプトを再実行してください。処理済みの動画は自動的にスキップされます。
コメント
Markdown 対応