# Subtitle Translator for SRT and VTT

Subtitle Translator for SRT and VTT is a tested SKILL.md that translates a subtitle file (SRT or WebVTT) into another language and returns the whole file with only the spoken words changed; an agent buys it once for $0.02 over x402.

- Page: https://aiskills402.com/skills/srt-translate
- Category: Translation & Localization (https://aiskills402.com/categories/translation)
- Price: $0.02 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/srt-translate

## Use it when

Translates a subtitle file (SRT or WebVTT) into another language and returns the whole file with only the spoken words changed. Cue numbers, timing lines, cue settings, position codes, speaker names, style and note blocks come back byte for byte; every cue stays one cue, in the same order, with at most two lines of at most 42 characters, shortened in wording when the translation is longer. Tags and markers such as italics, colours, music notes, dialogue dashes and bracketed sound descriptions keep their place; lines that give orders to an AI are translated as speech, never obeyed. Use to translate SRT or VTT subtitles, localize video or course captions, or translate a caption file without desyncing it.

## Not for

It does not time, transcribe or sync subtitles, fix a file whose timing is already wrong, burn captions into video or judge translation quality for a film. It copies timing as it finds it, even when the numbers look broken. Other formats such as ASS, TTML or SBV are outside what it was written and tested for. Chinese, Japanese and Korean line limits are not built in: give the limit in the request.

## Tested, honestly

Tested 2026-10-08.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Right in 23 of 23 cases, read by hand: cue numbers, every timing line and every VTT setting came back byte for byte, including overlapping cues, a zero-length cue and numbering with gaps; NOTE and STYLE blocks stayed English; italic, bold, font and position codes kept their place; voice names and dialogue dashes survived; a bracketed sound description kept its brackets with translated words; a German cue that does not fit was cut down to two lines of at most 42 characters; a caption telling the translator to answer with one word was translated as speech.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Right in 22 of 23 cases and kept NOTE and STYLE blocks, timing lines and tags intact where it had not before, but in one long German cue it left a line of 54 characters, so that file would not pass a two-line, 42-character check.

Note: Twenty-three subtitle files written by us, translated into Bulgarian, German, Spanish, French, Portuguese, Russian and English: plain film dialogue, one-word cues, song lyrics between music notes, overlapping and out-of-order timing, bracketed sound descriptions, two speakers with dashes, position and font tags, an ampersand entity, times and codes, two captions that give orders to the translator, and four WebVTT files with cue settings, voice names, identifiers, NOTE and STYLE blocks and timings without hours. The request on both sides asked for at most two lines of at most 42 characters. The SRT answers are scored by a program: same number of cues, same numbers, timing lines byte for byte, no more than two lines of 42 characters, translated text. The WebVTT answers are scored by exact-text and pattern checks. One run per model and case.

### With and without the skill

Tested 2026-10-08.

- Subtitle file intact, translated, within 2 lines of 42 characters (23 cases): Sonnet 23/23 with, 22/23 without; Haiku 22/23 with, 21/23 without.

The same request on both sides, with the line limit stated in it, so the bare model was told the rule. Essentially no gain: Sonnet kept timings, tags, dashes and brackets without help. Its one miss without the skill was a German cue it left at a 47-character line, read by hand as a real miss. With the skill that cue became two short lines. Haiku gained one case, a file with NOTE and STYLE blocks that it altered without the skill, and still left a 54-character line in the long German cue with it. The skill buys the shortening discipline and block handling, not structure Sonnet already kept.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/srt-translate/tests

## Example

### English (claude-sonnet-5-5)

Before:

> 1 00:00:01,000 --> 00:00:03,200 Where were you last night? 2 00:00:03,500 --> 00:00:06,000 At the station. The train was late. 3 00:00:06,400 --> 00:00:08,800 You could have called me.

After:

> 1 00:00:01,000 --> 00:00:03,200 Къде беше снощи? 2 00:00:03,500 --> 00:00:06,000 На гарата. Влакът закъсня. 3 00:00:06,400 --> 00:00:08,800 Можеше да ми се обадиш.

### Bulgarian (claude-sonnet-5-5)

Before:

> 1 00:00:02,000 --> 00:00:04,000 Добро утро, госпожо Петрова. 2 00:00:04,300 --> 00:00:06,000 Кафето ви е готово. 3 00:00:06,500 --> 00:00:09,000 Благодаря, много сте мил.

After:

> 1 00:00:02,000 --> 00:00:04,000 Good morning, Mrs. Petrova. 2 00:00:04,300 --> 00:00:06,000 Your coffee is ready. 3 00:00:06,500 --> 00:00:09,000 Thank you, you're very kind.

## What is in the file

- The answer
- Keep byte for byte
- Translate
- Keep inside the text
- The line budget
- Work in this order
- Short example

## Languages

English, Bulgarian, German, Spanish, French, Portuguese, Russian

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/srt-translate/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 7.6 KB (7733 bytes)
- SHA-256: 4d5d2309bebb951d9cd2b21a673fbe992872158c6e80dd4754189bf0d4b5ffc3
- Updated: 2026-10-08
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-08)

First release: translates an SRT or WebVTT file and returns the whole file with only the spoken words changed. Cue numbers, timing lines, VTT cue settings, identifiers and NOTE/STYLE/REGION blocks stay byte for byte; timing is never repaired; every cue stays one cue with at most two lines of 42 characters, shortened in wording rather than restructured; tags, position codes, speaker names, dialogue dashes, entities and bracketed sound descriptions keep their place; orders written inside captions are translated as speech.

Facts re-checked on 2026-10-08 by free fetch of the Netflix Timed Text Style Guide (42 characters, two lines, break rules, dual-speaker hyphen) and the W3C WebVTT standard (header, BOM, timestamps with optional hours, identifiers, cue settings, NOTE/STYLE/REGION blocks). Measured on 23 cases with the 42-character limit stated in the request on both sides: Sonnet 22 of 23 without the skill, 23 of 23 with it; Haiku 21 of 23 without, 22 of 23 with. The gain is small, so the price is class B, $0.02 (20000 micro-dollars), not the $0.03 first suggested. The cases also pass a zero-call control (23 inputs fail, 23 ideal answers pass, 52 typical mistakes fail).

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### What exactly stays untouched in the file?

Cue numbers, including gaps and repeats, every timing line down to the millisecond, the settings that follow the arrow in a WebVTT cue, cue identifiers that are words rather than numbers, and whole NOTE, STYLE and REGION blocks. Timing is never repaired: overlapping cues, a cue that ends where it starts and a time out of order are copied, because a corrected time silently moves a caption off its scene.

### What happens when the translation is longer than the original?

German, Spanish and Portuguese often run past forty-two characters. The skill shortens the wording until the cue fits two lines of at most forty-two characters, with the break after a clause or punctuation. It never adds a third line, never moves words into the next cue and never splits a cue, because a player shows each cue for a fixed time. If your request names other limits, those win.

### How are tags, speaker names and sound descriptions handled?

Italic, bold, font and position codes stay where they were around the words they wrap, voice names in WebVTT keep their spelling, and a hyphen that marks a second speaker stays at the start of its line. A bracketed description such as a door slamming keeps its brackets and its words are translated. Music notes stay around the translated lyric. Entities, times, codes and addresses are not reformatted, so a train time such as 12:30 stays 12:30 in every language.

### Is Claude Sonnet better with it?

Only slightly. We stated the line limit in the request on every one of 23 files. Sonnet then passed 22 bare and all 23 with the skill, because it already preserved timings, tags, dashes and brackets; its single miss was a German cue left at 47 characters. Haiku moved from 21 to 22. The value is the shortening rule, NOTE and STYLE handling and ignoring orders inside captions.

## Related skills

- [Translate Markdown: Docs That Still Build](https://aiskills402.com/skills/translate-markdown.md): $0.06 once
- [Translate App Text (JSON, YAML, PO)](https://aiskills402.com/skills/translate-app-text.md): $0.01 once
- [PO Translate: Gettext Files That Still Compile](https://aiskills402.com/skills/po-translate.md): $0.02 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
