About video-fetch-and-summarize
video-fetch-and-summarize is a skill that downloads videos from URLs and uses Gemini to create Markdown summaries. It is for organizing video content, with custom extraction prompts and reruns that skip videos already processed.
Key features
- 01Extracts video URLs from links or text files
- 02Downloads videos as MP4
- 03Creates Markdown summaries with Gemini
- 04Accepts custom prompts or prompt files
- 05Skips existing outputs on reruns
Use cases
- 01Compile summaries and key points from videos
- 02Extract tools, prices, or action items from video
- 03Summarize login-protected videos
- 04Rerun processing for newly added videos
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ maystudios/ claude-skills --skill video-fetch-and-summarizeAfter installing, type/video-fetch-and-summarizein Claude Code to confirm it loaded.
Bundled filesREADME.mdscripts/fetch_and_summarize.py
Details
From the project READMEVideo Fetch & Summarize
Downloads videos from URLs and generates a Markdown summary per video via Gemini. Fully self-contained — no other skills required.
Output Structure
<output_dir>/
<Video_Title>/
<uploader>_<id>.mp4
summary.md
Prerequisites
GEMINI_API_KEYenv var setyt-dlpandgoogle-genai— auto-installed on first run if missing- Python available as
py(Windows) orpython3
Script
scripts/fetch_and_summarize.py
Usage
# 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
How Claude should handle user arguments
When the user invokes this skill:
- If the user specifies a custom prompt or extraction goal (e.g., "extract all tools mentioned",
"summarize focusing on pricing", "list action items"), pass it via
--prompt "...". - If the user provides a prompt file path, pass it via
--prompt-file path/to/file.txt. - If the user gives no specific instructions, run without
--promptto use the default format. - A custom prompt completely replaces the default — it does not add to it.
Workflow
- Extract all URLs from provided arguments and/or files (regex-based, works with any text format)
- For each URL:
a. Fetch video metadata via
yt-dlp --dump-jsonto get the title for the folder name b. Download the video as best-quality MP4 into<output>/<Title>/c. Upload MP4 to the Gemini Files API, wait for ACTIVE state d. Generate Markdown summary (using custom or default prompt), delete file from Gemini storage e. Save summary as<output>/<Title>/summary.md - Skip videos where both MP4 and summary.md already exist (idempotent re-runs)
Download Details (yt-dlp)
- Format:
bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best— best quality, always MP4 - Filename pattern:
{uploader}_{video_id}.mp4— e.g.DesignMotion_DUf3nehjIg7.mp4 --no-playlistis set by default (single videos only)- Supported platforms: YouTube, Instagram (posts/reels), TikTok, Twitter/X, Facebook, Vimeo, Reddit, and 1000+ more
Authentication for private/login-required content
py scripts/fetch_and_summarize.py links.txt --cookies-from-browser chrome
# also works with: firefox, edge, safari
The user must be logged in to the platform in the specified browser.
Summarization Details (Gemini)
- Model:
gemini-3-flash-preview - Upload via Gemini Files API (supports large video files)
- Uploaded files are auto-deleted from Gemini storage after generation (48h max limit anyway)
- Summary language matches the language spoken/shown in the video
Default output format (when no custom prompt is given)
# [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*
Notes
- Output directory defaults to the current working directory
- Folder names are sanitized from the video title (max 80 chars, special chars replaced)
- Already-processed videos are skipped on re-runs
- If the Gemini API returns 503 (overloaded), re-run the script — already-done videos are skipped automatically
Comments
Markdown supported