video-knowledge-extractor

Extracts structured markdown knowledge bases from YouTube videos using transcripts and VLM frame analysis.

Updated Sep 2, 2026
One-click install
npx skills add https://github.com/nbiish/tts-mcp --skill video-knowledge-extractor-nbiish
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: video-knowledge-extractor
Source: https://github.com/nbiish/tts-mcp/tree/main/.agents/skills/video-knowledge-extractor
Command: npx skills add https://github.com/nbiish/tts-mcp --skill video-knowledge-extractor-nbiish

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires yt-dlp, ffmpeg, and includes scripts (resource) components.

What problem does it solve? Video transcription alone loses critical information shown on screen—slides, terminal output, diagrams, and code. This Skill combines spoken transcripts with sequential visual frame analysis via a Vision-Language Model to produce a complete, searchable markdown knowledge base from any YouTube video. ## Core Features & Use Cases - Multimodal Extraction: Downloads auto-subtitles (.vtt) and extracts 8 sequential frames per chapter with ffmpeg, then fuses both through a VLM. - Semantic Chunking: Splits videos by chapters or 3-minute chunks to stay within context limits while preserving structure. - Focusable Analysis: Accepts an optional system prompt addendum to steer the VLM toward specific topics like CVEs, architectures, or methodologies. - Use Case: Feed a 2-hour security conference talk URL and receive a chapter-by-chapter markdown document capturing both the narration and every diagram shown on screen, ready to be fused into research notes. ## Quick Start Run the omni_video_extractor.py script with a YouTube URL, an output directory, and your .env credentials file to generate a markdown knowledge base of the video.

Frequently Asked Questions about video-knowledge-extractor

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert a YouTube video into a markdown document?

Run the omni_video_extractor.py script with the YouTube URL as the first argument. It downloads the transcript and video, extracts frames per chapter with ffmpeg, and sends both to a VLM to produce a [VIDEO_ID]_analysis.md file.

How to extract knowledge from videos that have no chapters?

When a video lacks chapters, the script automatically splits it into 3-minute chunks. Each chunk gets its own transcript slice and 8 extracted frames, which are analyzed sequentially and appended to the output markdown.

What VLM providers does the video extractor support?

The script supports any OpenAI-compatible chat completions endpoint configured through OMNI_PROVIDER and OMNI_MODEL. Documented providers include Nebius, OpenRouter, and Zenmux, each requiring its own API key and base URL in the .env file.

Why does yt-dlp fail to download YouTube videos?

YouTube applies bot protection that blocks unauthenticated requests. The script bypasses this by passing browser cookies via the --cookies-from-browser flag, so set YTDLP_BROWSER to a browser where you are logged into YouTube, such as chrome, brave, or firefox.

Can I focus the video analysis on specific topics?

Yes, pass a system prompt addendum as the fourth argument to the script. This text is appended to the VLM prompt for every section, letting you steer analysis toward CVEs, architectures, or any subject of interest.