MoviePy Video Tools
Kern MoviePyVideoTools enable an Agent to process videos, extract audio, generate SRT caption files, and embed rich, word-highlighted captions.
Prerequisites
To use MoviePyVideoTools, you need to install moviepy and its dependency ffmpeg:
1uv pip install moviepy ffmpegImportant for Captioning Workflow:
The create_srt and embed_captions tools require a transcription of the video's audio. MoviePyVideoTools itself does not perform speech-to-text. You'll typically use another tool, such as OpenAITools with its transcribe_audio function, to generate the transcription (often in SRT format) which is then used by these tools.
Example
The following example demonstrates a complete workflow where an agent uses MoviePyVideoTools in conjunction with OpenAITools to:
- Extract audio from a video file
- Transcribe the audio using OpenAI's speech-to-text
- Generate an SRT caption file from the transcription
- Embed the captions into the video with word-level highlighting
1from kern.agent import Agent2from kern.models.openai import OpenAIResponses3from kern.tools.moviepy_video import MoviePyVideoTools4from kern.tools.openai import OpenAITools56video_tools = MoviePyVideoTools(7 process_video=True, generate_captions=True, embed_captions=True8)910openai_tools = OpenAITools()1112video_caption_agent = Agent(13 name="Video Caption Generator Agent",14 model=OpenAIResponses(15 id="gpt-5.2",16 ),17 tools=[video_tools, openai_tools],18 description="You are an AI agent that can generate and embed captions for videos.",19 instructions=[20 "When a user provides a video, process it to generate captions.",21 "Use the video processing tools in this sequence:",22 "1. Extract audio from the video using extract_audio",23 "2. Transcribe the audio using transcribe_audio",24 "3. Generate SRT captions using create_srt",25 "4. Embed captions into the video using embed_captions",26 ],27 markdown=True,28)2930video_caption_agent.print_response(31 "Generate captions for {video with location} and embed them in the video"32)Toolkit Functions
These are the functions exposed by MoviePyVideoTools:
| Function | Description |
|---|---|
enable_extract_audio | Extracts the audio track from a video file and saves it to a specified output path. |
enable_create_srt | Saves a given transcription (expected in SRT format) to a .srt file at the specified output path. |
enable_embed_captions | Embeds captions from an SRT file into a video, creating a new video file with word-level highlighting. |
Toolkit Params
These parameters are passed to the MoviePyVideoTools constructor:
| Parameter | Type | Default | Description |
|---|---|---|---|
process_video | bool | True | Enables the extract_audio tool. |
generate_captions | bool | True | Enables the create_srt tool. |
embed_captions | bool | True | Enables the embed_captions tool. |
Developer Resources
- View Tools