video-ad-analyzer
Extract and analyze content from video ads using Gemini Vision AI. Supports frame extraction, OCR text detection, audio transcription, and AI-powered scene analysis. Use when analyzing video creative content, extracting text overlays, or generating scene-by-scene descriptions.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- video-ad-analyzer
- version
- 1.0.0
- description
- Extract and analyze content from video ads using Gemini Vision AI. Supports frame extraction, OCR text detection, audio transcription, and AI-powered scene analysis. Use when analyzing video creative content, extracting text overlays, or generating scene-by-scene descriptions.
02 资源文件 6
- 参考文档_meta.json300 B
- 参考文档prompts/scene_analysis.md3.3 KB
- 参考文档prompts/scene_reconciliation.md3.6 KB
- 脚本scripts/models.py548 B
- 脚本scripts/prompt_manager.py4.9 KB
- 脚本scripts/video_extractor.py28.0 KB
03 SKILL.md 正文
Video Ad Analyzer
AI-powered video content extraction using Google Gemini Vision.
What This Skill Does
- Frame Extraction: Smart sampling with scene change detection
- OCR Text Detection: Extract text overlays using EasyOCR
- Audio Transcription: Convert speech to text with Google Cloud Speech
- AI Scene Analysis: Describe each scene using Gemini Vision
- Native Video Analysis: Direct video understanding for longer content
- Thumbnail Generation: Auto-generate thumbnails from first frame
Setup
1. Environment Variables
# Required for Gemini Vision
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
# Required for audio transcription
# (same service account needs Speech-to-Text API enabled)
2. Dependencies
pip install opencv-python pillow easyocr ffmpeg-python google-cloud-speech vertexai google-api-python-client
Also requires ffmpeg and ffprobe installed on system.
Usage
Basic Video Analysis
from scripts.video_extractor import VideoExtractor
from scripts.models import ExtractedVideoContent
import vertexai
from vertexai.generative_models import GenerativeModel
# Initialize Vertex AI
vertexai.init(project="your-project-id", location="us-central1")
gemini_model = GenerativeModel("gemini-1.5-flash")
# Create extractor
extractor = VideoExtractor(gemini_model=gemini_model)
# Analyze video
result = extractor.extract_content("/path/to/video.mp4")
print(f"Duration: {result.duration}s")
print(f"Scenes: {len(result.scene_timeline)}")
print(f"Text overlays: {len(result.text_timeline)}")
print(f"Transcript: {result.transcript[:200]}...")
Extract Only Frames
frames, timestamps, text_timeline, scene_timeline, thumbnail = extractor.extract_smart_frames(
"/path/to/video.mp4",
scene_interval=2, # Check for scene changes every 2s
text_interval=0.5 # Check for text every 0.5s
)
Analyze Images
# Works with images too
result = extractor.extract_content("/path/to/image.jpg")
print(result.scene_timeline[0]['description'])
Output Structure
ExtractedVideoContent(
video_path="/path/to/video.mp4",
duration=30.5,
transcript="Here's what we found...",
text_timeline=[
{"at": 0.0, "text": ["Download Now"]},
{"at": 5.5, "text": ["50% Off Today"]}
],
scene_timeline=[
{"timestamp": 0.0, "description": "Woman using phone app..."},
{"timestamp": 2.0, "description": "Product showcase with features..."}
],
thumbnail_url="/static/thumbnails/video_thumb.jpg",
extraction_complete=True
)
Key Features
| Feature | Description |
|---|---|
| Scene Detection | Histogram-based change detection (threshold=65) |
| OCR Confidence | Tiered thresholds (0.5 high, 0.3 low) |
| AI Proofreading | Gemini cleans up OCR errors |
| Source Reconciliation | Merges OCR + Vision text intelligently |
| Native Video | Direct Gemini analysis for <20MB files |
Prompts
Customize AI behavior by editing prompts in the prompts/ folder:
scene_analysis.md- Frame analysis promptsscene_reconciliation.md- Scene enrichment prompts
Common Questions This Answers
- "What text appears in this video ad?"
- "Describe each scene in this creative"
- "What does the narrator say?"
- "Extract the call-to-action from this ad"
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.