Translate SRT/VTT subtitle files while preserving cue timecodes using the Azure AI Translator Document Translation API
domain: learn.microsoft.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Confirm the target file extension (.srt or .vtt) is in Document Translation's supported format list, since caption formats are handled as a first-class document type distinct from plain text
Upload the subtitle file to a source Blob Storage container and configure a SAS-signed source/target container pair as with any Document Translation batch job
POST a batch translation request specifying the target language(s); Document Translation parses cue blocks and translates only the caption text, leaving timecodes and cue numbering untouched
Poll the batch and document status endpoints until translation completes, then download the translated .srt/.vtt from the target container
Spot-check translated captions for line-length/reading-speed issues, since MT output length can differ substantially from the source and may need re-timing or line-splitting for on-screen readability
Known gotchas
Caption translation preserves timecodes exactly as in the source file — it does not re-time cues to account for target-language text that reads slower or faster, so post-processing may be needed for viewer readability
Malformed or non-standard SRT/VTT files (inconsistent cue numbering, missing blank lines) can cause the parser to mis-segment cues; validate source files before batch submission
This is a batch-only (asynchronous) capability like other Document Translation jobs — there is no synchronous single-request captioning endpoint
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?