Library
Browse and semantically search completed AI Scene Analysis results across your organization.
AI Scene Analysis Library
The AI Scene Analysis Library gives you one place to browse and search completed AI Scene Analysis results across your organization. Open the Library in the Bitmovin Dashboard, or use the Bitmovin API without needing to know an encoding ID in advance.
The Library contains completed AI Scene Analyses for the currently selected organization. To create analyses, see Getting Started with AI Scene Analysis.
Use the Library in the Dashboard
In the Bitmovin Dashboard, open AI Scene Analysis > Analysis Library.
The Library summarizes completed analyses and provides access to their detailed results and downloadable JSON reports.
Select an analysis to open its full details. To open a specific analysis directly, enter its encoding ID.
The Dashboard initially shows analyses created during the last 30 days. Use the Created filter to select all time, the last seven days, the last 30 days, or a custom range. You can sort ordinary results by creation time, refresh the page manually, and move through results using Previous and Next.
Search with natural language
Enter a natural-language description in the search field and select Search or press Enter. Queries must contain between 3 and 100 characters.
For example:
nighttime city skylinea person playing pianotense conversation in a dark roomend credits
Semantic search searches scene content but returns one result per analysis. Results are ordered by relevance.
Each result can include the best semantic match within a scene, containing the matching scene's title, description, and type together with the start and end time of the matching interval. The interval can cover only part of the containing scene. Select the match to open that scene in the analysis details.
A search with no relevant matches returns an empty result set. It does not fall back to the ordinary Library listing.
List analyses through the API
Use GET /v1/ai-scene-analysis/analyses to list analyses for your organization. See the List AI Scene Analyses API reference for the complete request and response specification.
curl --get 'https://api.bitmovin.com/v1/ai-scene-analysis/analyses' \
--header "X-Api-Key: ${BITMOVIN_API_KEY}" \
--header 'accept: application/json' \
--data-urlencode 'offset=0' \
--data-urlencode 'limit=15' \
--data-urlencode 'sort=createdAt:DESC'For accounts with access to multiple organizations, add X-Tenant-Org-Id to select the organization.
Filter and paginate
The endpoint accepts:
offset: zero-based index of the first result; default0limit: maximum results per request; default15, maximum100createdAtFrom: inclusive lower creation-date bound in ISO 8601 formatcreatedAtTo: inclusive upper creation-date bound in ISO 8601 formatsort:createdAt:DESCorcreatedAt:ASCfor ordinary listingsearchText: natural-language semantic query containing 3–100 characters
The response does not include a total result count. Increase offset by limit until the endpoint returns fewer items than requested or an empty page.
Search through the API
When searchText is present, use relevance:DESC. Creation-date sorting cannot be combined with semantic search.
curl --get 'https://api.bitmovin.com/v1/ai-scene-analysis/analyses' \
--header "X-Api-Key: ${BITMOVIN_API_KEY}" \
--header 'accept: application/json' \
--data-urlencode 'offset=0' \
--data-urlencode 'limit=15' \
--data-urlencode 'searchText=nighttime city skyline' \
--data-urlencode 'sort=relevance:DESC' \
--data-urlencode 'createdAtFrom=2026-08-01T00:00:00Z' \
--data-urlencode 'createdAtTo=2026-08-31T23:59:59Z'Use the SDKs
Python
import os
from bitmovin_api_sdk import (
BitmovinApi,
SceneAnalysisListItemListQueryParams,
SceneAnalysisListSort,
)
api = BitmovinApi(api_key=os.environ["BITMOVIN_API_KEY"])
page = api.ai_scene_analysis.analyses.list(
SceneAnalysisListItemListQueryParams(
offset=0,
limit=15,
search_text="nighttime city skyline",
sort=SceneAnalysisListSort.RELEVANCE_DESC,
)
)
for analysis in page.items:
print(analysis.title or analysis.encoding_id)
if analysis.matching_segment:
segment = analysis.matching_segment
print(
segment.scene_title or "Untitled scene",
segment.start_in_seconds,
segment.end_in_seconds,
)JavaScript and TypeScript
import BitmovinApi, { SceneAnalysisListSort } from '@bitmovin/api-sdk';
const api = new BitmovinApi({
apiKey: process.env.BITMOVIN_API_KEY!,
});
const page = await api.aiSceneAnalysis.analyses.list({
offset: 0,
limit: 15,
searchText: 'nighttime city skyline',
sort: SceneAnalysisListSort.RELEVANCE_DESC,
});
for (const analysis of page.items ?? []) {
console.log(analysis.title ?? analysis.encodingId);
if (analysis.matchingSegment) {
const segment = analysis.matchingSegment;
console.log(
segment.sceneTitle ?? 'Untitled scene',
segment.startInSeconds,
segment.endInSeconds,
);
}
}Understand the response
The following fields summarize the response. See the List AI Scene Analyses API reference for the complete response schema, field types, and nullability.
Each analysis item contains:
id: AI Scene Analysis IDencodingId: associated encoding IDcreatedAt: analysis creation timestamptitle: inferred asset title, when availabledescription: asset-level analysis descriptionkeywords: asset-level keywords, when availablesceneCount: number of scenesoutputLanguageCodes: available translated analysis languages
Semantic-search responses can additionally contain matchingSegment:
sceneId: ID of the containing scenesceneType: detected scene type, when availablesceneTitle: scene title, when availablesceneDescription: scene description, when availablestartInSecondsandendInSeconds: matching interval within the asset
Ordinary list responses omit matchingSegment.
Additional resources
Updated about 2 hours ago