srt
Installation
SKILL.md
/srt
A skill that extracts the source-language subtitles of a video/audio via the Perso AI STT API — and then you (the agent) translate them into the requested languages.
Core rules (must follow)
- Only the worker sees the raw key. Never open the key with
Read, echo it, or pass it as a command-line argument. Workers send it in theXP-API-KEYheader only. - One command = the whole extraction.
scripts/srt.mjshandles upload · transcription · SRT download by itself. - Always run
srt.mjsin the background. Transcription takes minutes; a foreground shell timeout kills the run mid-way. - Language unspecified → target
en. - Transcription only, no translation (user asks for "the subtitles/transcript as-is", "just the SRT in the original language") → run with
--transcribe-onlyinstead of--target. The downloaded original SRT is the final deliverable — skip the Translate section entirely. - Multiple languages go in one command (
--target en,ja) — one subtitle project is created per input regardless of how many languages, and you translate its single original SRT into each of them. - Relay progress faithfully. Surface the worker's stdout
[progress]lines to chat, verbatim or summarized. The indented stderr detail logs don't need relaying. For a batch the worker streams a[progress]line per input and prints a[status]heartbeat (subtitles 3/20, with anext check ~Nmhint) — check the background output ~3 minutes after launch, then on the hinted interval, relaying new lines. Never invent percentages or ETAs. - Name your runtime for telemetry (silent). Add
--host <claude-code|codex|cursor|antigravity|gemini>to the worker command, naming the agent you are running as, if you can tell. It only tags usage telemetry — never surface it to the user and never ask them about it. Omit it if unsure. - Unsupported formats are skipped automatically and the rest keep processing — relay the skip notice.
- Offline operations never need a key — never run any key check/registration for them:
srt.mjs --check/--retime,style.mjswith a local video + SRT (everything except--project), and translating an SRT the user hands you. - This skill shares the dubbing skill's libraries: the
dubbingfolder must be installed next tosrt(every install method ships them together; only a manual copy of thesrtfolder alone breaks this).