Sync analysis
The TwelvelabsApiClient interface provides methods to analyze videos synchronously and generate text based on their content. These methods return results immediately in the response.
When to use these methods:
- Analyze videos up to 1 hour
- Retrieve immediate results without polling for task completion
- Stream text fragments in real time for immediate processing and feedback
Do not use these methods for:
- Videos longer than 1 hour. Use the
analyzeAsync.tasks.createmethod instead. - Video segmentation with custom segment definitions. Use the
analyzeAsync.tasks.createmethod withmodelNameset to"pegasus1.5"instead.
Sync analysis
Description: This method analyzes your videos and returns the results directly in the response. It generates text based on your prompts and supports both Pegasus 1.2 and Pegasus 1.5 for general analysis (prompt-based text generation).
Note
This method is rate-limited. For details, see the Rate limits page.
Function signature and example:
Parameters:
The AnalyzeRequest interface contains the following properties:
The SyncResponseFormat class contains the following properties:
VideoContext
The VideoContext type specifies the source of the video content. Provide exactly one of the following. Set the type discriminator field to "url", "asset_id", or "base64_string" to indicate which source you are providing.
AnalyzePromptV2
The AnalyzePromptV2 interface defines a structured prompt with image references.
SmeMediaSource
A reference image that provides visual context. Provide exactly one of url, assetId, or base64String.
Return value: Returns a Promise that resolves to a NonStreamAnalyzeResponse object containing the generated text.
The NonStreamAnalyzeResponse interface contains the following properties:
The TokenUsage interface contains the following properties:
The maximum response length is 4,096 tokens for Pegasus 1.2 and up to 65,536 tokens for Pegasus 1.5. Set the maxTokens parameter to change this limit.
API Reference: Sync analysis.
Related guide: Analyze videos.
Sync analysis with streaming responses
Description: This method analyzes your videos and returns the results directly in the response. It generates text based on your prompts and supports both Pegasus 1.2 and Pegasus 1.5 for general analysis (prompt-based text generation).
Note
This method is rate-limited. For details, see the Rate limits page.
Function signature and example:
Parameters:
The AnalyzeStreamRequest interface contains the following properties:
For details about VideoContext, AnalyzePromptV2, and SmeMediaSource, see the Sync analysis section above.
The SyncResponseFormat class contains the following properties:
Return value: Returns a promise that resolves to a Stream<TwelvelabsApi.StreamAnalyzeResponse> object that can be iterated over to receive streaming text chunks.
The StreamAnalyzeResponse can be either a StreamAnalyzeResponse.StreamStart, a StreamAnalyzeResponse.TextGeneration, or a StreamAnalyzeResponse.StreamEnd.
The StreamAnalyzeResponse.StreamStart interface contains the following properties:
The StreamAnalyzeResponse.TextGeneration interface contains the following properties:
The StreamAnalyzeResponse.StreamEnd interface contains the following properties:
The StreamStartResponseMetadata interface contains the following properties:
The StreamEndResponseMetadata interface contains the following properties:
The TokenUsage interface contains the following properties:
The maximum response length is 4,096 tokens for Pegasus 1.2 and up to 65,536 tokens for Pegasus 1.5. Set the maxTokens parameter to change this limit.
API Reference: Sync analysis.
Related guide: Analyze videos.
Error codes
This section lists the most common error messages you may encounter while analyzing videos.
token_limit_exceeded- Your request could not be processed due to exceeding maximum token limit. Please try with another request or another video with shorter duration.
index_not_supported_for_generate- You can only summarize videos uploaded to an index with an engine from the Pegasus family enabled.