When creating a Mux asset via POST to '/video/v1/assets', include a 'generated_subtitles' array in the request body with at least one object specifying 'language_code' (e.g., 'en') and optionally 'name' and 'passthrough' fields
To add auto-generated captions to an existing asset, use POST to '/video/v1/assets/{ASSET_ID}/tracks' with 'type' set to 'subtitles', 'language_code' set to your target language, and 'closed_captions' set to true
Set 'language_code' to 'auto' to enable automatic language detection — Mux uses OpenAI Whisper under the hood and supports 22 languages for on-demand video
Poll the asset's track status via GET '/video/v1/assets/{ASSET_ID}' and check that the track's 'status' field is 'ready' before attempting to retrieve or serve the captions
For live streams, include 'generated_subtitles' in the POST to '/video/v1/live-streams' — live captions are delivered in near real time and the first 6000 minutes per month are included at no additional charge
Retrieve the caption track as a VTT file or request a plain-text transcript via GET to '/video/v1/assets/{ASSET_ID}/tracks/{TRACK_ID}/transcript' once the track status is ready
Known gotchas
Auto-generated captions are not created retroactively on assets that existed before the feature was enabled — you must explicitly request them via the tracks endpoint for existing assets
The 'language_code' field on the generated_subtitles object is for the source audio language, not the output language — Mux transcribes but does not translate
Mux auto-generates caption tracks as WebVTT; if you need SRT or other formats for downstream use, convert the VTT output after retrieval
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp