Skip to Content
Create an 'analyze-structure' job
post

Creates a job that generates a coherent title, summary, tags, chapters, scenes, and key moments from shared evidence for a Mux asset.

Request body params
passthrough
string

Arbitrary string stored with the job and returned in responses. Useful for correlating jobs with your own systems.

parameters.asset_id
string

The Mux asset ID of the video to analyze.

parameters.language_code
string

BCP 47 language code of the caption source. An explicit language must match a ready source exactly, including case; for example, en does not match en-US. Translation target exclusion and track replacement instead compare base languages case-insensitively. When omitted, automatic selection applies. Uses the first ready subtitle in asset track order without English preference. Audio-only assets with one ready text track lacking subtitle metadata can use that legacy transcript.

parameters.output_language_code
string

BCP 47 language code for generated text. Auto-detected from available evidence when omitted.

Curated controls that restrict Analyze Structure execution or guide its generated metadata without exposing raw prompt editing. The scope start is inclusive, the end is exclusive, and returned timestamps remain absolute.

Optional media execution window. Results remain timestamped against the original media timeline.

parameters.output_steering.scope.start_time
number
(min: 0)

Start of the execution window in seconds from the beginning of the media. When omitted, the window starts at the beginning.

parameters.output_steering.scope.end_time
number

End of the execution window in seconds from the beginning of the media. When omitted, the window extends to the end.

parameters.output_steering.audience
string

Intended audience used as best-effort guidance without changing the output schema.

parameters.output_steering.brand_terms
array

Preferred brand or domain terms to use when supported by the source content.

Controlled vocabulary used as best-effort guidance for generated labels and concepts.

parameters.output_steering.topic_taxonomy.name
string

Optional customer-facing name for the taxonomy.

Controlled vocabulary values used as best-effort model guidance.

parameters.output_steering.topic_taxonomy.values[].label
string

Canonical taxonomy value to prefer when supported by the source content.

parameters.output_steering.topic_taxonomy.values[].description
string

Short explanation of when this value applies.

parameters.output_steering.topic_taxonomy.values[].aliases
array

Accepted alternate names that should normalize to the canonical label.

parameters.output_steering.topic_taxonomy.allow_other
boolean

When false, the model should prefer values from the taxonomy. When true, non-taxonomy values may be used when no taxonomy value applies.

parameters.output_steering.granularity
string
Possible values: "coarse""balanced""fine"

Best-effort guidance that moves scene and chapter density together.

parameters.update_asset_meta
boolean

When true, writes the generated title to asset.meta.title after analysis. Defaults to false. Best-effort: a metadata-write failure does not fail the analysis. Check outputs.asset_updates.title for the outcome.

parameters.update_asset_chapters
boolean

When true, replaces or creates the asset's chapters track after analysis. Defaults to false. Best-effort: a chapters-write failure does not fail the analysis. Check outputs.asset_updates.chapters for the outcome.

post
202
https://api.mux.com/robots/v1/jobs/analyze-structure
Request
(application/json)
{
  "parameters": {
    "asset_id": "mux_asset_123abc",
    "language_code": "en",
    "output_language_code": "en",
    "output_steering": {
      "scope": {
        "start_time": 30,
        "end_time": 300
      },
      "audience": "Developers evaluating video APIs",
      "brand_terms": [
        "Mux",
        "Mux Data"
      ],
      "granularity": "balanced"
    },
    "update_asset_meta": true,
    "update_asset_chapters": true
  }
}
Response
(application/json)
{
  "data": {
    "id": "rjob_example123",
    "workflow": "analyze-structure",
    "status": "pending",
    "units_consumed": 0,
    "created_at": 1700000000,
    "updated_at": 1700000060,
    "parameters": {
      "asset_id": "mux_asset_123abc",
      "language_code": "en",
      "output_language_code": "en",
      "output_steering": {
        "scope": {
          "start_time": 30,
          "end_time": 300
        },
        "audience": "Developers evaluating video APIs",
        "brand_terms": [
          "Mux",
          "Mux Data"
        ],
        "granularity": "balanced"
      },
      "update_asset_meta": true,
      "update_asset_chapters": true
    }
  }
}