---
updatedAt: 2026-08-14T09:30:35.000Z
agentTools:
  siteIndex: https://developer.bitmovin.com/llms.txt
  projectIndex: https://developer.bitmovin.com/encoding/llms.txt
---

# 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. <Anchor target="_blank" href="https://dashboard.bitmovin.com/ai-scene-analysis/library">Open the Library in the Bitmovin Dashboard</Anchor>, 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](https://developer.bitmovin.com/encoding/docs/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](https://developer.bitmovin.com/encoding/reference/getaisceneanalysisanalyses) for the complete request and response specification.

```curl
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
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

```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

```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 ](https://developer.bitmovin.com/encoding/reference/getaisceneanalysisanalyses)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

* [AI Scene Analysis overview](https://developer.bitmovin.com/encoding/docs/ai-scene-analysis)
* [Getting Started with AI Scene Analysis](https://developer.bitmovin.com/encoding/docs/getting-started-with-ai-scene-analysis)
* [List AI Scene Analyses API reference](https://developer.bitmovin.com/encoding/reference/getaisceneanalysisanalyses)