Mux · Arazzo Workflow

Mux Add Caption Track to Asset

Version 1.0.0

Create an asset, wait until ready, attach a text caption track, then poll the track until it is ready.

1 workflow 1 source API 1 provider
View Spec View on GitHub Video InfrastructureVideo StreamingLive StreamingVideo AnalyticsVideo AIEncodingArazzoWorkflows

Provider

mux-com

Workflows

asset-add-caption-track
Create a ready asset, add a text caption track, and wait for the track to be ready.
Creates an asset, waits for ready, attaches a text caption track from a URL, and polls the asset until the track is ready.
4 steps inputs: captionUrl, inputUrl, languageCode, trackName outputs: assetId, trackId, tracks
1
createAsset
Create a new asset from the source URL so a caption track can be attached once it is ready.
2
waitForReady
Poll the asset until its status reaches ready so a track can be added.
3
addCaptionTrack
Attach a text caption track to the ready asset, pointing Mux at the external caption file to download.
4
waitForTrackReady
Re-read the asset until the newly added caption track reports a ready status in the asset's tracks list.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Mux Add Caption Track to Asset
  summary: Create an asset, wait until ready, attach a text caption track, then poll the track until it is ready.
  description: >-
    Adds external subtitles or closed captions to an existing piece of Mux Video
    content. The workflow creates an asset from a source URL, waits for the
    asset to be ready, attaches a text track pointing at an SRT or WebVTT
    caption file, and then re-reads the asset until the new track reports a ready
    status. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-3710
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-3710
      capability_name: Media Asset Management
      spec: mux-com-assets-api-openapi.yml
      confidence: 0.9
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: assetsApi
  url: ../openapi/mux-com-assets-api-openapi.yml
  type: openapi
workflows:
- workflowId: asset-add-caption-track
  summary: Create a ready asset, add a text caption track, and wait for the track to be ready.
  description: >-
    Creates an asset, waits for ready, attaches a text caption track from a URL,
    and polls the asset until the track is ready.
  inputs:
    type: object
    required:
    - inputUrl
    - captionUrl
    - languageCode
    properties:
      inputUrl:
        type: string
        description: A publicly accessible URL to the source video file Mux should ingest.
      captionUrl:
        type: string
        description: URL of the SRT or WebVTT caption file Mux should download and attach.
      languageCode:
        type: string
        description: BCP 47 language code for the caption track (e.g. en or en-US).
      trackName:
        type: string
        description: Human readable name for the caption track.
        default: English
  steps:
  - stepId: createAsset
    description: >-
      Create a new asset from the source URL so a caption track can be attached
      once it is ready.
    operationId: createAsset
    requestBody:
      contentType: application/json
      payload:
        inputs:
        - url: $inputs.inputUrl
        playback_policies:
        - public
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      assetId: $response.body#/data/id
  - stepId: waitForReady
    description: >-
      Poll the asset until its status reaches ready so a track can be added.
    operationId: getAsset
    parameters:
    - name: ASSET_ID
      in: path
      value: $steps.createAsset.outputs.assetId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.data.status == "ready"
      type: jsonpath
    retryAfter: 5
    retryLimit: 60
    outputs:
      assetId: $response.body#/data/id
  - stepId: addCaptionTrack
    description: >-
      Attach a text caption track to the ready asset, pointing Mux at the
      external caption file to download.
    operationId: create-asset-track
    parameters:
    - name: ASSET_ID
      in: path
      value: $steps.waitForReady.outputs.assetId
    requestBody:
      contentType: application/json
      payload:
        url: $inputs.captionUrl
        type: text
        text_type: subtitles
        language_code: $inputs.languageCode
        name: $inputs.trackName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      trackId: $response.body#/data/id
      trackStatus: $response.body#/data/status
  - stepId: waitForTrackReady
    description: >-
      Re-read the asset until the newly added caption track reports a ready
      status in the asset's tracks list.
    operationId: getAsset
    parameters:
    - name: ASSET_ID
      in: path
      value: $steps.waitForReady.outputs.assetId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.data.status == "ready"
      type: jsonpath
    retryAfter: 5
    retryLimit: 30
    outputs:
      tracks: $response.body#/data/tracks
  outputs:
    assetId: $steps.waitForReady.outputs.assetId
    trackId: $steps.addCaptionTrack.outputs.trackId
    tracks: $steps.waitForTrackReady.outputs.tracks

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/mux-com-asset-add-caption-track-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.