Skip to main content
Use client.index() to generate timestamped descriptions of your recordings. Choose driving for road footage or robotics for manipulation and subtask annotation. index() submits the recordings and waits for their results. It returns a dictionary keyed by the video IDs you supplied. The default mode is "driving", so specify mode="robotics" for robot or handheld manipulation recordings.
Indexing uses your account’s credits. Calling index() again submits a new request; it does not resume the previous SDK call. If a call times out, inspect the existing run before submitting again.

Indexing driving footage

Use mode="driving" to generate time-bounded descriptions of road scenes, driving behavior, and interactions. Driving is the default mode.
Each completed recording returns a grounded_caption list. An illustrative driving annotation:
To annotate every selected recording, leave the filtering options at their defaults. For optional novelty selection, pass a fraction with top_k:
This requests the most novel 20% of the recording cohort, with driving IMU heuristic additions and missing-evidence fallbacks. It is not a hard retention or cost limit. smart_filter=True is a separate driving-only screening option and cannot be combined with top_k.

Indexing robotics footage

Use mode="robotics" for robot or handheld manipulation recordings. Nomadic uses available linked camera views and supported motion signals to ground timestamped subtask annotations.
Select one primary video ID per recording; its linked cameras remain part of the recording. When a reference subtask taxonomy is configured for the embodiment and task, predictions include its subtask categories and acting arm. Ground-truth intervals are comparison data, not prediction inputs.

Inspect subtask annotations

Successful results contain grounded_caption: a list of time-bounded annotations. Times are in seconds relative to the video.
An illustrative robotics annotation:
Category and arm fields are optional; robotics results without a reference taxonomy may contain only timestamps and captions.

Method

client.index(videos, **options)

Pass a list of video IDs as the first argument. All remaining parameters are optional keyword arguments.

Parameters

Leave filtering options at their defaults to annotate all selected recordings. With top_k, the retained fraction can exceed the requested value because of heuristic additions or missing-evidence fallbacks; it is not a hard cost limit.

Return value

A dictionary keyed by the supplied video IDs. Each value contains a status and, on success, a grounded_caption list. Failed results include error; timeout results also include error_code and run_id.

Failures and timeouts

Check each recording’s result independently. A completed result contains status="completed"; a failed result contains status="failed" and an error. Optional processing warnings may appear without failing the whole result. When the SDK reaches its timeout, unfinished recordings return error_code="timeout" and run_id. The server may still be processing them. Open that run in Workbench rather than immediately submitting another indexing request. Once it finishes, retrieve the annotations with client.get_batch_analysis(run_id). With optional filtering enabled, a successfully skipped recording can have an empty grounded_caption list.