For the complete documentation index, see llms.txt.
Extract plain, timestamped, JSON, or sentence text from SRT subtitles.
One POST adds SRT to TXT Converter to your app, site, workflow, or agent — formula, validation, edge cases, and docs already handled.
prefer a UI? Open the SRT to TXT Converter on miniwebtool.com →
POST https://api.miniwebtool.com/v1/tools/srt-to-txt/run
| Field | Type | Req. |
|---|---|---|
text
|
str |
✓ |
output_format
plain | timestamped | json | sentences
|
str |
— |
remove_speaker_tags
|
bool |
— |
remove_html_tags
|
bool |
— |
remove_sound_effects
|
bool |
— |
remove_music
|
bool |
— |
normalize_whitespace
|
bool |
— |
131072 bytes.no_body_logs{
"request_id": "01K...",
"tool": "srt-to-txt",
"tool_version": "2026-04-22",
"credits_used": 1,
"result": { ... }
}
1,000 free calls/mo · no card · key arrives by email
curl -X POST https://api.miniwebtool.com/v1/tools/srt-to-txt/run \
-H 'Authorization: Bearer mwt_live_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"text":"1\n00:00:00,000 --> 00:00:02,000\nHello world.","output_format":"plain"}'
import requests
resp = requests.post(
'https://api.miniwebtool.com/v1/tools/srt-to-txt/run',
headers={'Authorization': 'Bearer mwt_live_YOUR_KEY'},
json={'text': '1\n00:00:00,000 --> 00:00:02,000\nHello world.', 'output_format': 'plain'},
)
resp.raise_for_status()
data = resp.json()
print(data)
const resp = await fetch(
'https://api.miniwebtool.com/v1/tools/srt-to-txt/run',
{
method: 'POST',
headers: {
'Authorization': 'Bearer mwt_live_YOUR_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"text":"1\n00:00:00,000 --> 00:00:02,000\nHello world.","output_format":"plain"}),
}
);
const data = await resp.json();
console.log(data);
<?php
$ch = curl_init('https://api.miniwebtool.com/v1/tools/srt-to-txt/run');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer mwt_live_YOUR_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'text' => '1
00:00:00,000 --> 00:00:02,000
Hello world.',
'output_format' => 'plain'
]),
]);
$resp = curl_exec($ch);
curl_close($ch);
print_r(json_decode($resp, true));
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.miniwebtool.com/v1/tools/srt-to-txt/run')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = 'Bearer mwt_live_YOUR_KEY'
req['Content-Type'] = 'application/json'
req.body = {
'text' => '1
00:00:00,000 --> 00:00:02,000
Hello world.',
'output_format' => 'plain'
}.to_json
resp = http.request(req)
puts JSON.parse(resp.body).inspect
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"text": "1
00:00:00,000 --> 00:00:02,000
Hello world.",
"output_format": "plain",
})
req, _ := http.NewRequest("POST", "https://api.miniwebtool.com/v1/tools/srt-to-txt/run", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer mwt_live_YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}
import java.net.URI;
import java.net.http.*;
var client = HttpClient.newHttpClient();
var req = HttpRequest.newBuilder()
.uri(URI.create("https://api.miniwebtool.com/v1/tools/srt-to-txt/run"))
.header("Authorization", "Bearer mwt_live_YOUR_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"text\":\"1\\n00:00:00,000 --> 00:00:02,000\\nHello world.\",\"output_format\":\"plain\"}"))
.build();
var resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
text, . See the Request body table above for the full schema.
https://api.miniwebtool.com/v1/tools/srt-to-txt/run
Authorization: Bearer <key> and Content-Type: application/json. Copy-paste snippets in 7 languages are under Code examples.
{request_id, tool, tool_version, credits_used, result}. The typed output lives in result.
Extract plain, timestamped, JSON, or sentence text from SRT subtitles. Use it to add this utility without rebuilding formulas, validation, examples, and documentation.
1 credit per successful call. Failed calls (validation errors, 5xx) don't bill.
Required fields: text. Full schema at /v1/openapi.json.
Yes — same input, same output, forever. Tool version 2026-04-22; output shape is stable within a major version.
Yes. Connect to https://api.miniwebtool.com/v1/mcp over the Model Context Protocol. The agent discovers `srt-to-txt` with its JSON Schema automatically, so the model can plan while MiniWebtool handles the exact tool result.
JSON with a stable envelope: `{request_id, tool, tool_version, credits_used, result}`. Errors are RFC 7807 `application/problem+json`.
Every endpoint on this site is also exposed via the
Model Context Protocol at
https://api.miniwebtool.com/v1/mcp.
Claude, Cursor, and any MCP-capable agent can discover this tool
(srt-to-txt)
and its JSON Schema automatically — no client codegen.
# List tools the agent can call
curl -s https://api.miniwebtool.com/v1/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
| jq '.result.tools[] | select(.name=="srt-to-txt")'