video summarizer

安装量: 86
排名: #9208

安装

npx skills add https://github.com/martinopiaggi/summarize --skill 'Video Summarizer'

Overview This skill transcribes and summarizes video content by running the python -m summarizer CLI tool. It handles YouTube (captions or audio), local files, Google Drive, and Dropbox. Transcripts are chunked, processed in parallel through an OpenAI-compatible LLM, and merged into a final summary. IMPORTANT: Always use the CLI command below. Never try to fetch, scrape, or download video URLs directly (e.g., with webfetch or curl). The CLI handles all downloading, transcription, and summarization internally. Quick Start (Step-by-Step) Follow these steps exactly: Step 1 -- Run the CLI: python -m summarizer --source "VIDEO_URL" The tool uses the default provider from summarizer.yaml (already configured). No extra flags needed for basic usage. Step 2 -- Read the output file: The CLI prints the output filename on success. It is always saved inside the summaries/ subdirectory relative to the project working directory. For example: [+] Saved watch_20260207_234533.md The full path to read is: summaries/watch_20260207_234533.md Step 3 -- Show the result to the user. That's it. Three steps. Where Files Live All paths are relative to the project working directory (where summarizer.yaml and setup.py are). File Location Config ./summarizer.yaml API keys ./.env Prompt templates ./summarizer/prompts.json Output summaries ./summaries/.md CLI entry point python -m summarizer Do NOT look for .env or config files in your home directory or in the skill directory. They are in the project root. CLI Reference python -m summarizer [OPTIONS] Required Flag Description --source One or more video URLs or file paths Provider Options Flag Description Default --provider Named provider from summarizer.yaml default_provider from YAML --base-url API endpoint URL (overrides provider) From YAML --model Model identifier (overrides provider) From YAML --api-key API key (overrides .env auto-matching) Auto from .env Source Options Flag Description Default --type YouTube Video , Video URL , Local File , Google Drive Video Link , Dropbox Video Link YouTube Video --force-download Skip YouTube captions, download audio instead False --transcription Cloud Whisper (Groq API) or Local Whisper Cloud Whisper --whisper-model tiny , base , small , medium , large tiny --language Language code for captions (e.g., en , it , es ) auto Processing Options Flag Description Default --prompt-type Summary style (see Styles below) From YAML defaults --chunk-size Characters per text chunk From YAML defaults --parallel-calls Concurrent API requests 30 --max-tokens Max output tokens per chunk 4096 Output Options Flag Description Default --output-dir Directory to save summaries summaries --output-format markdown , json , or html markdown --no-save Print to stdout only, don't save file False --verbose , -v Detailed progress output False Warning: Do NOT use --no-save on Windows. There is a known encoding bug where Unicode characters in the summary crash stdout output. Always let the tool save to a file, then read the file. Config Options Flag Description --config Path to config file (default: auto-detect) --no-config Ignore config file, use CLI args only --init-config Generate example summarizer.yaml and exit Summary Styles Use with --prompt-type . Defined in summarizer/prompts.json . Style Purpose Questions and answers Q&A extraction from content Summarization Standard summary with title Distill Wisdom Ideas, quotes, and references extraction DNA Extractor Core truth distilled to 200 words max Fact Checker Claim verification with TRUE/FALSE/MISLEADING labels Tutorial Step-by-step instructions from content Research Deep analysis with broader context Reflections Philosophical extensions beyond what is said Mermaid Diagram Visual concept map in Mermaid.js syntax Essay Writing in Paul Graham Style 250-word essay in Paul Graham's style Only grammar correction with highlights Grammar cleanup with bold highlights Examples Summarize a YouTube video (simplest form) python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID"

Output: summaries/watch_YYYYMMDD_HHMMSS.md

Specify a provider python -m summarizer --source "https://youtube.com/watch?v=VIDEO_ID" --provider gemini

Output: summaries/watch_YYYYMMDD_HHMMSS.md

Extract key insights with 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

Fact-check video claims using 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

Generate a Mermaid diagram from a lecture python -m summarizer \ --source "https://youtube.com/watch?v=VIDEO_ID" \ --provider gemini \ --prompt-type "Mermaid Diagram"

Output: summaries/watch_YYYYMMDD_HHMMSS.md

Summarize a local file python -m summarizer \ --type "Local File" \ --source "./lecture.mp4" \ --provider groq

Output: summaries/lecture_YYYYMMDD_HHMMSS.md

Batch-process multiple videos python -m summarizer \ --source "URL1" "URL2" "URL3" \ --provider gemini \ --prompt-type "Summarization"

Output: one file per URL in summaries/

Use without config file (all flags explicit) 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

Reading the Output After running the CLI, always read the output file from summaries/ :

The CLI prints something like:

[+] Saved watch_20260207_234533.md

The file is at:

summaries/watch_20260207_234533.md
Use the Read tool on the full path:
summaries/
(relative to project root).
Multi-Step Workflow
For comprehensive analysis, chain multiple styles on the same video:
Start with
Summarization
for a quick overview
Use
Distill Wisdom
to extract key insights
Run
Fact Checker
(ideally with Perplexity) to verify claims
Generate a
Mermaid Diagram
for visual reference
Error Handling
If no API key is found, the tool checks
.env
for a key matching the provider URL keyword
If YouTube captions are unavailable, the tool falls back to audio download + Whisper transcription
Use
--verbose
to see detailed progress and debug issues
Cloud Whisper requires a Groq API key (free tier available)
Configuration Files
All in the project working directory:
summarizer.yaml
Provider definitions (base_url, model, chunk-size) and defaults
.env
API keys, auto-matched by URL keyword (e.g.,
generativelanguage = YOUR_KEY
)
summarizer/prompts.json
Prompt templates using {text} as transcript placeholder Testing python -m pytest tests/ -v
返回排行榜