TwelveLabs
A RocketRide filter node that sends a video to TwelveLabs along with instructions and returns the generated text response.
What it does
Analyzes video using the TwelveLabs Pegasus model (pegasus1.2, with both visual and audio model options) and emits the generated text. For each incoming video stream the node:
- Buffers the video chunks in memory and writes them to a temporary file when the stream ends.
- Creates a temporary TwelveLabs index named
rocketride-<random>. - Uploads the video as an indexing task and polls every 5 seconds until the task is
ready(raises an error if the task reportsfailed, or after a 15-minute timeout). - Calls the TwelveLabs analyze endpoint with your configured instructions as the prompt and writes the result to the
textlane. - Deletes the temporary index and the temporary file, even on failure.
Uses the official twelvelabs Python SDK. If no instructions are configured, the prompt defaults to Describe this video.. If TwelveLabs returns an empty result, the node outputs the string No data from TwelveLabs.
Supported input formats (by MIME type): MP4, MOV (QuickTime), AVI, WebM, MKV, and MPG. Unrecognized video MIME types are written to a .mp4 temp file before upload.
Configuration
Lanes
| Lane in | Lane out | Description |
|---|---|---|
video | text | Analyze video and return text output |
The text result is only emitted when a downstream node is listening on the text lane.
Fields
| Field | Type | Description |
|---|---|---|
apikey | string | TwelveLabs API key. |
instructions | array | Instructions to guide TwelveLabs when analyzing the video. |
profile | string | Default "default". |
The node ships a single default profile containing both fields.
Authentication
Provide your TwelveLabs API key in the apikey field. The key is loaded once when the pipeline starts and shared by all instances of the node. Get a key from the TwelveLabs dashboard.
Operational notes
- Each video processed creates and then deletes its own TwelveLabs index, no persistent index is reused, so nothing accumulates in your TwelveLabs account, but indexing happens from scratch on every video.
- Indexing time depends on video length; tasks that take longer than 15 minutes raise
TwelveLabs task timed out. - Videos are currently buffered fully in memory before being written to the temp file, so very large videos increase memory usage accordingly.
Upstream docs
Schema
| Field | Type | Description | Default |
|---|---|---|---|
twelvelabs.apikey | string | API Key TwelveLabs API key. | |
twelvelabs.instructions | array | Instructions Instructions to guide TwelveLabs when analyzing the video. | |
twelvelabs.profile | string | "default" |
Dependencies
twelvelabs