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 skyline
  • a person playing piano
  • tense conversation in a dark room
  • end 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; default 0
  • limit: maximum results per request; default 15, maximum 100
  • createdAtFrom: inclusive lower creation-date bound in ISO 8601 format
  • createdAtTo: inclusive upper creation-date bound in ISO 8601 format
  • sort: createdAt:DESC or createdAt:ASC for ordinary listing
  • searchText: 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 ID
  • encodingId: associated encoding ID
  • createdAt: analysis creation timestamp
  • title: inferred asset title, when available
  • description: asset-level analysis description
  • keywords: asset-level keywords, when available
  • sceneCount: number of scenes
  • outputLanguageCodes: available translated analysis languages

Semantic-search responses can additionally contain matchingSegment:

  • sceneId: ID of the containing scene
  • sceneType: detected scene type, when available
  • sceneTitle: scene title, when available
  • sceneDescription: scene description, when available
  • startInSeconds and endInSeconds: matching interval within the asset

Ordinary list responses omit matchingSegment.

Additional resources


Did this page help you?