{"uid":"cap_dgezdY7Xm_TPOoqrXcgic","slug":"tanod-subtitles-convert-2e500200","name":"Tanod Subtitles Convert","description":"utilpeek (Tanod) subtitle converter: SRT, WebVTT and JSON segments, with a time shift. Use when an agent must convert subtitles between SRT, WebVTT and JSON segments or shift their timing.","url":"https://tanod.dev/v1/text/subtitles-convert?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"to":{"enum":["srt","vtt","json"],"type":"string","description":"Output format: srt (SubRip), vtt (WebVTT) or json (a list of {start, end, text}, seconds)."},"content":{"anyOf":[{"type":"string","maxLength":1000000,"minLength":1},{"type":"null"}],"default":null,"description":"The SRT or WebVTT file as text (at most 1,000,000 characters, 10,000 cues). The format is detected from a WEBVTT header unless from_format is given. Use this or segments."},"segments":{"anyOf":[{"type":"array","items":{"type":"object","required":["start","end","text"],"properties":{"end":{"type":"number","maximum":359999.999,"minimum":0,"description":"End in seconds, not before start."},"text":{"type":"string","maxLength":5000,"minLength":1},"start":{"type":"number","maximum":359999.999,"minimum":0,"description":"Start in seconds."}},"additionalProperties":false},"maxItems":10000},{"type":"null"}],"default":null,"description":"A JSON segment list [{start, end, text}] in seconds, as /v1/audio/transcribe returns it. Use this or content."},"shift_ms":{"type":"integer","default":0,"maximum":86400000,"minimum":-86400000,"description":"Time shift in milliseconds for every cue (negative = earlier; a cue that ends before 0 is dropped)."},"from_format":{"anyOf":[{"enum":["srt","vtt","json"],"type":"string"},{"type":"null"}],"default":null,"description":"Optional input format check: content is srt or vtt, segments are json."}}},"responseSchema":{"type":"json","example":{"to":"vtt","cues":2,"from":"srt","output":"WEBVTT\n\n00:00:01.000 --> 00:00:03.500\nHello there.\n\n00:00:04.000 --> 00:00:06.000\nBye.\n\n","dropped":0,"duration":6,"segments":null,"shift_ms":0,"operation":"subtitles-convert"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_xkkHLH-6uqNkCT8yzX_1s","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts subtitle files between SRT, WebVTT, and JSON formats with optional time-shifting of all cues","exampleAgentPrompt":"Convert this SRT subtitle file to WebVTT format and shift all the cues 500 milliseconds later — here's the file content: '1\\n00:00:01,000 --> 00:00:03,500\\nHello there.\\n\\n2\\n00:00:04,000 --> 00:00:06,000\\nBye.\\n'","exampleUseCases":[{"title":"SRT to WebVTT for video player","prompt":"I have an SRT subtitle file and I need it converted to VTT format so my HTML5 video player can use it — can you convert this for me? Here's the content: '1\\n00:00:01,000 --> 00:00:03,500\\nWelcome to the show.\\n\\n2\\n00:00:04,000 --> 00:00:06,000\\nLet's get started.\\n'"},{"title":"Fix out-of-sync subtitles","prompt":"My subtitles are appearing 2 seconds too early — can you shift all the cues in this VTT file forward by 2000 milliseconds? Here's the file: 'WEBVTT\\n\\n00:00:01.000 --> 00:00:03.000\\nHello everyone.\\n\\n00:00:04.000 --> 00:00:07.000\\nToday we discuss AI.\\n'"},{"title":"Transcript segments to SRT file","prompt":"I just got back a transcription as a JSON segment list and need it as an SRT subtitle file — can you convert these segments to SRT? The segments are: [{\"start\":0.5,\"end\":3.2,\"text\":\"Hi there.\"},{\"start\":4.0,\"end\":6.5,\"text\":\"Welcome aboard.\"}]"}],"resultDescription":"A JSON object containing the converted subtitle output as a string (in SRT, VTT, or JSON format), the number of cues converted, the number of cues dropped (if shift moved them before time 0), the total duration in seconds, the detected input format, the output format, and the applied time shift in milliseconds.","failureModes":["Invalid or malformed SRT/VTT content returns a parse error","Providing both content and segments simultaneously may cause a conflict error","from_format mismatch with actual content format triggers a validation error","Content exceeding 1,000,000 characters or 10,000 cues is rejected","shift_ms outside the range -86400000 to 86400000 is rejected","Missing both content and segments fields returns a missing input error"],"whenToPreferThis":"Use this endpoint when you need a reliable, pay-per-call subtitle format conversion between SRT, VTT, and JSON without setting up a local library. It is especially useful when you also need time-shifting in the same operation, or when you're working with AI transcription output (JSON segments from /v1/audio/transcribe) and need to produce a standard subtitle file. Prefer this over generic text transformation endpoints because it understands subtitle timing semantics and handles cue dropping when shifts make cues negative.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-29T06:50:44.524Z","isFirstParty":false,"canonicalSlug":"tanod-subtitles-convert-2e500200"}