Video Understanding

v1.1.0

Analyze and summarize videos from 1000+ sites using Google Gemini AI, providing transcripts, descriptions, summaries, and answers to questions.

4· 996· 3 versions· 6 current· 6 all-time· Updated 2mo ago· MIT-0

Video Understanding (Gemini)

Analyze videos using Google Gemini's multimodal video understanding. Supports 1000+ video sources via yt-dlp.

Requirements

  • yt-dlpbrew install yt-dlp / pip install yt-dlp
  • ffmpegbrew install ffmpeg (for merging video+audio streams)
  • GEMINI_API_KEY environment variable

Default Output

Returns structured JSON:

  • transcript — Verbatim transcript with [MM:SS] timestamps
  • description — Visual description (people, setting, UI, text on screen, flow)
  • summary — 2-3 sentence summary
  • duration_seconds — Estimated duration
  • speakers — Identified speakers

Usage

Analyze a video (structured JSON output)

uv run {baseDir}/scripts/analyze_video.py "<video-url>"

Ask a question (adds "answer" field)

uv run {baseDir}/scripts/analyze_video.py "<video-url>" -q "What product is shown?"

Override prompt entirely

uv run {baseDir}/scripts/analyze_video.py "<video-url>" -p "Custom prompt" --raw

Download only (no analysis)

uv run {baseDir}/scripts/analyze_video.py "<video-url>" --download-only -o video.mp4

Options

FlagDescriptionDefault
-q / --questionQuestion to answer (added to default fields)none
-p / --promptOverride entire prompt (ignores -q)structured JSON
-m / --modelGemini modelgemini-2.5-flash
-o / --outputSave output to filestdout
--keepKeep downloaded video filefalse
--download-onlyDownload only, skip analysisfalse
--max-sizeMax file size in MB500
--rawRaw text output instead of JSONfalse

How It Works

  1. YouTube URLs → Passed directly to Gemini (no download needed)
  2. All other URLs → Downloaded via yt-dlp → uploaded to Gemini File API → poll until processed
  3. Gemini analyzes video with structured prompt → returns JSON
  4. Temp files and Gemini uploads cleaned up automatically

Supported Sources

Any URL supported by yt-dlp: Loom, YouTube, TikTok, Vimeo, Twitter/X, Instagram, Dailymotion, Twitch, and 1000+ more.

Tips

  • Use -q for targeted questions on top of the full analysis
  • YouTube is fastest (no download step)
  • Large videos (10min+) work fine — Gemini File API supports up to 2GB (free) / 20GB (paid)
  • The script auto-installs Python dependencies via uv

Version tags

latestvk975rvdst9vgqvadxh3hv9snf1813z90

Runtime requirements

🎬 Clawdis
Binsyt-dlp, ffmpeg
EnvGEMINI_API_KEY
Primary envGEMINI_API_KEY

Install

Install yt-dlp (brew)
Bins: yt-dlp
brew install yt-dlp
Install ffmpeg (brew)
Bins: ffmpeg
brew install ffmpeg