Lumiqa Docs

auto_subtitle

Generation write coming soon
COMING SOON. auto_subtitle is currently in private beta and not yet wired into the public MCP surface. The schema, response shape, and OpenAI Whisper backend documented below are final — we're just gating access until quality checks land. Calling it today returns tool_not_available_yet. Email [email protected] for early access.

What it does

Pulls the latest review video, sends it to OpenAI Whisper (via your own OPENAI_API_KEY — BYO Keys), and produces SRT and/or VTT files written back into R2 at <slug>/subtitles/<content_id>.{srt,vtt}.

The transcript + language + duration are also returned in the response so an agent can act on them without a second round-trip.

Input schema

NameTypeRequiredDefaultDescription
id string required Content id.
translate_to string|null optional null Only "en" is natively supported (Whisper translation). Other codes are accepted but ignored; transcript stays in the source language.
style string optional "both" srt · vtt · both.

Example call

json{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "auto_subtitle",
    "arguments": {
        "id": "c_abc123",
        "style": "both"
    }
  }
}

Response shape

json{
  "ok": true,
  "transcript": "Today we're pulling...",
  "language_detected": "en",
  "duration_sec": 42.7,
  "srt": "1\n00:00:00,000 --> 00:00:02,800\nToday we're pulling...",
  "vtt": "WEBVTT\n\n00:00:00.000 --> 00:00:02.800\nToday we're pulling...",
  "srt_r2_key": "your-slug/subtitles/c_abc123.srt",
  "vtt_r2_key": "your-slug/subtitles/c_abc123.vtt",
  "translated_to": null,
  "source_upload": { "id": "u_xyz789", "filename": "veo_cut_v3.mp4" },
  "warning": null
}

Usage from Claude Desktop

prompt"Generate Italian subtitles for c_abc123 and store the SRT in R2."

Usage from Python

pythonimport requests

LUMIQA = "https://lumiqa.io/mcp/your-slug"
HEADERS = {"Authorization": "Bearer lk_live_xxxxxxxxxxxx"}

r = requests.post(LUMIQA, headers=HEADERS, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "tools/call",
    "params": {
        "name": "auto_subtitle",
        "arguments": {"id": "c_abc123", "style": "srt"}
    },
})
print(r.json())

Usage from Node

javascriptconst r = await fetch("https://lumiqa.io/mcp/your-slug", {
  method: "POST",
  headers: {
    "Authorization": "Bearer lk_live_xxxxxxxxxxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0", id: 1,
    method: "tools/call",
    params: {
      name: "auto_subtitle",
      arguments: { id: "c_abc123", style: "srt" },
    },
  }),
});
const data = await r.json();
console.log(data);

Required env vars / integrations

Known limitations