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.