ls-video-lens

Download YouTube videos, extract sampled frames, and generate VLM captions with timestamps.

Updated Aug 5, 2026
One-click install
npx skills add https://github.com/ahostbr/liteharness --skill ls-video-lens
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ls-video-lens
Source: https://github.com/ahostbr/liteharness/tree/main/liteharness/catalog/skills/ls-video-lens
Command: npx skills add https://github.com/ahostbr/liteharness --skill ls-video-lens

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires yt-dlp.

What problem does it solve?

This Skill eliminates the manual effort of watching, summarizing, and extracting visual information from videos by automatically downloading a YouTube video, sampling it into frames, and generating per-frame visual descriptions.

Core Features & Use Cases

  • Frame extraction at configurable intervals: Samples a video into JPEG frames every N seconds for dense or lightweight visual coverage.
  • Visual captioning/indexing via VLM backends: Produces a structured index by captioning each frame using either LM Studio (local) or the Claude API (hosted).
  • Caption-free extraction mode: Supports an extract-only workflow for scenarios like manual review or Claude Code-style reading of frames directly.
  • Outputs for downstream use: Writes a machine-readable JSON index and a human-readable Markdown summary with timestamps and captions.

Use case: When a user says “index this video” or “what happens in this video,” this Skill creates a searchable timeline of visual events so you can quickly locate moments that matter (e.g., tutorials, on-screen text, product demos).

Quick Start

Tell the assistant to download a YouTube URL, extract one frame every 5 seconds, and caption/index each frame using the LM Studio backend.

Frequently Asked Questions about ls-video-lens

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

FAQPage Schema
How do I extract frames from a YouTube video for visual indexing?▼

To extract frames from a YouTube video, this Skill downloads the URL using yt-dlp and samples frames at configurable intervals using ffmpeg, outputting JPEG images for visual indexing. It generates a searchable timeline with timestamps.

Can I use LM Studio or the Claude API for video frame captioning?▼

Yes, you can use LM Studio or the Claude API for video frame captioning. This Skill sends extracted JPEG frames to your chosen vision-language model backend to generate structured JSON and Markdown outputs with timestamps and visual descriptions.

How do I create a searchable timeline of events from a YouTube video?▼

You create a searchable timeline by downloading the video, extracting sampled frames, and generating VLM captions for each frame. This Skill outputs a machine-readable JSON index and a human-readable Markdown summary.

Do I need yt-dlp and ffmpeg to index YouTube videos frame-by-frame?▼

Yes, you need yt-dlp and ffmpeg to index YouTube videos frame-by-frame. yt-dlp handles the video download while ffmpeg performs the frame extraction at your specified intervals before the vision-language model generates captions.

Can I extract video frames without generating VLM captions?▼

Yes, you can extract video frames without generating VLM captions using the caption-free extraction mode. This workflow downloads and samples frames for manual review or direct reading without invoking a vision-language model backend.

What is the best way to summarize visual content and on-screen text from a video?▼

The best way to summarize visual content and on-screen text is through frame-by-frame VLM captioning. This Skill samples frames every N seconds and uses a vision-language model to generate descriptions, making it easy to locate specific visual events.