Skip to main content
View source

TwelveLabs

View as Markdown

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:

  1. Buffers the video chunks in memory and writes them to a temporary file when the stream ends.
  2. Creates a temporary TwelveLabs index named rocketride-<random>.
  3. Uploads the video as an indexing task and polls every 5 seconds until the task is ready (raises an error if the task reports failed, or after a 15-minute timeout).
  4. Calls the TwelveLabs analyze endpoint with your configured instructions as the prompt and writes the result to the text lane.
  5. 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 inLane outDescription
videotextAnalyze video and return text output

The text result is only emitted when a downstream node is listening on the text lane.

Fields

FieldTypeDescription
apikeystringTwelveLabs API key.
instructionsarrayInstructions to guide TwelveLabs when analyzing the video.
profilestringDefault "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

FieldTypeDescriptionDefault
twelvelabs.apikeystringAPI Key
TwelveLabs API key.
twelvelabs.instructionsarrayInstructions
Instructions to guide TwelveLabs when analyzing the video.
twelvelabs.profilestring"default"

Dependencies

  • twelvelabs