{"slug":"srt-translate","name":"Subtitle Translator for SRT and VTT","version":"1.0.0","updated_at":"2026-10-08T15:11:42.651Z","use_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.","languages":["en","bg","de","es","fr","pt","ru"],"tags":["subtitles","srt","webvtt","captions","translation","localization","video"],"category":"translation","category_url":"https://aiskills402.com/categories/translation","keywords":["translate SRT or VTT subtitles","localize video or course captions","translate a caption file"],"faq":[{"q":"What exactly stays untouched in the file?","a":"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."},{"q":"What happens when the translation is longer than the original?","a":"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."},{"q":"How are tags, speaker names and sound descriptions handled?","a":"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."},{"q":"Is Claude Sonnet better with it?","a":"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."}],"examples":[{"lang":"en","model":"claude-sonnet-5-5","input_excerpt":"1\n00:00:01,000 --> 00:00:03,200\nWhere were you last night?\n\n2\n00:00:03,500 --> 00:00:06,000\nAt the station. The train was late.\n\n3\n00:00:06,400 --> 00:00:08,800\nYou could have called me.","output_excerpt":"1\n00:00:01,000 --> 00:00:03,200\nКъде беше снощи?\n\n2\n00:00:03,500 --> 00:00:06,000\nНа гарата. Влакът закъсня.\n\n3\n00:00:06,400 --> 00:00:08,800\nМожеше да ми се обадиш."},{"lang":"bg","model":"claude-sonnet-5-5","input_excerpt":"1\n00:00:02,000 --> 00:00:04,000\nДобро утро, госпожо Петрова.\n\n2\n00:00:04,300 --> 00:00:06,000\nКафето ви е готово.\n\n3\n00:00:06,500 --> 00:00:09,000\nБлагодаря, много сте мил.","output_excerpt":"1\n00:00:02,000 --> 00:00:04,000\nGood morning, Mrs. Petrova.\n\n2\n00:00:04,300 --> 00:00:06,000\nYour coffee is ready.\n\n3\n00:00:06,500 --> 00:00:09,000\nThank you, you're very kind."}],"page_url":"https://aiskills402.com/skills/srt-translate","markdown_url":"https://aiskills402.com/skills/srt-translate.md","image_url":"https://cdn.aiskills402.com/og/skills/srt-translate/ca177910.png","related_url":"https://api.aiskills402.com/v1/skills/srt-translate/related","purchases_count":null,"tested":{"date":"2026-10-08","strong":{"model":"claude-sonnet-5-5 (Claude Code alias \"sonnet\")","verdict":"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\")","verdict":"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.","baseline":{"date":"2026-10-08","rows":[{"label":"Subtitle file intact, translated, within 2 lines of 42 characters (23 cases)","better":"higher","strong":{"with":{"n":23,"of":23},"without":{"n":22,"of":23}},"weak":{"with":{"n":22,"of":23},"without":{"n":21,"of":23}}}],"note":"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."},"report_url":null},"price_usd":"0.02","price_micro":20000,"size_bytes":7733,"sha256":"4d5d2309bebb951d9cd2b21a673fbe992872158c6e80dd4754189bf0d4b5ffc3","outline":["The answer","Keep byte for byte","Translate","Keep inside the text","The line budget","Work in this order","Short example"],"license":{"summary":"Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing","holder":"Georgi Kalchev, aiskills402.com","url":"https://aiskills402.com/docs#license"},"buy_url":"https://api.aiskills402.com/v1/skills/srt-translate/file","redownload_url_template":"https://api.aiskills402.com/v1/purchases/{token}","mcp_tool":null,"payment":{"protocol":"x402","scheme":"exact","asset":"USDC","selling":true,"network":"base","network_caip2":"eip155:8453","pay_to":"0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4","facilitator":"cdp"},"seo_title":"SRT and VTT Subtitle Translator for Agents","seo_description":"Translate subtitle files without moving a single timestamp: cue numbers, settings and tags stay, lines are cut to two of 42 characters. $0.03, yours forever.","versions":[{"version":"1.0.0","date":"2026-10-08","changelog":"# Changelog\n\n## 1.0.0 — 2026-10-08\n\nFirst 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.\n\nFacts 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).\n"}]}