Skip to main content
Make it easy to send videos to LLMs and have them reason about video content by automatically extracting frames, audio, and transcripts.

Overview

Many LLMs are limited to processing text, and in some cases images and audio. This plugin extends native LLM capabilities by pre-processing videos into content that LLMs can understand. The plugin automatically detects video URLs in your messages and converts them into image frames, audio tracks, and transcripts that can be processed by vision-enabled and audio-enabled language models. This processing is compatible with all LLMs - you can select any LLM you want to use for reasoning about the video content.

Features

  • Source Flexibility: Supports downloading videos from URLs, including services like YouTube, Vimeo, TikTok and more
    • Proxy Support: Can use residential proxies automatically to download videos from geo-restricted services
  • Frame Extraction: Extract frames at configurable intervals (by FPS or total frame count)
  • Timestamp Overlay: Burn timestamps into frames for temporal reasoning. Useful for identifying when events occur in videos (format: HH:MM:SS.ss)
  • Audio Support: Extract and include audio from videos (requires LLMs that support audio input)
  • Transcription: Generate transcripts using OpenAI’s gpt-4o-transcribe model
  • Video Trimming: Process only specific segments using start/end offsets
  • Resolution Control: Adjust frame resolution to control LLM processing costs

Installation

  1. Add the plugin to your Datawizz endpoint configuration
  2. Set the endpoint URL to: https://your-service-url/plugin/video
  3. Configure the Authorization header with your secret token:
    • Header name: Authorization
    • Header value: Bearer YOUR_SECRET_TOKEN
  4. Optionally configure default settings (see Configuration below)

Configuration

You can specify configurations to control how the video is processed. All options are optional and have sensible defaults:

Sampling Options

Visual Options

Audio & Transcription Options

Download Options

Trimming Options

Usage

Send video attachments as part of a message to the LLM (similar to sending images):

Example: Video with Text

Input Message:
What happens: The plugin automatically replaces the video_url content with image frames (and optionally transcript text). Your prompt should explain to the LLM that these are frames from the video, and that the transcript is a transcription of the audio. Output to LLM:

Supported Video Sources

  • Direct video file URLs (.mp4, .avi, .mov, .mkv, .webm)
  • YouTube videos
  • TikTok videos
  • Any video URL that can be downloaded

Prompting Tips

Important: Your prompt should explain to the LLM what content it’s receiving:
  • Mention that you’re providing frames from a video
  • If using timestamps, explain that timestamps are burned into the frames
  • If including a transcript, mention that it’s a transcription of the audio
Pro Tip: You can combine video processing with other LLM features like structured output to generate structured insights from videos. If using timestamps, you can use structured output for event identification in videos.

Message Format Requirements

The plugin ONLY processes structured multimodal content with explicit video_url type. Plain string URLs like "content": "https://example.com/video.mp4" will NOT be processed. Videos must be in this format:
Or simply:

Example Configuration

This configuration will:
  • Extract 2 frames per second
  • Use medium resolution (768px longest side) to control LLM costs
  • Add timestamps in the bottom-right corner
  • Include a transcript in English using OpenAI’s transcription service

Performance Notes

  • Processing time depends on video length and configuration
  • Higher sample_fps or sample_frames values increase processing time
  • Transcription requires audio extraction and may add significant processing time
  • Frame resolution affects LLM processing costs - most LLMs charge based on image resolution
  • The plugin gracefully handles errors - if processing fails, the original message is preserved

Configuration Schema


Supported Phases

  • Request Phase: Supports processing during the REQUEST phase