srt

srt is a skill for Claude Code, Codex from perso-ai/perso-dubbing-plugin. It costs 27 tokens per session (4,188 once invoked), scanned A, original, MIT.

A tool for extracting timed subtitles from video or audio, then translating them into requested languages. SRT is a subtitle file format that stores text together with when each line appears.

In plain words
What is it for?
Use it to create original-language SRT subtitles from videos, translate them, or produce several language versions from one recording or URL.
Why use it?
It removes the need to transcribe recordings and translate subtitle files by hand.

Skill for Claude CodeCodex

Written for Claude Code and Codex: allowed-tools in frontmatter, but also agents/openai.yaml present. Also seen: mentions Codex.

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is Bash(node scripts/srt.mjs *), Bash(node scripts/style.mjs *), Bash(node ../dubbing/scripts/resolve_key.mjs *), Bash(node ../dubbing/scripts/billing.mjs *), Bash.

Part of the perso-dubbing plugin — 3 skills, 1 hook shipped together

Good fit Use it to create original-language SRT subtitles from videos, translate them, or produce several language versions from one recording or URL.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/perso-ai/perso-dubbing-plugin
agentmods
npx agentmods add skills/perso-ai/perso-dubbing-plugin/srt

Made for: Claude Code, Codex.

Or install perso-dubbing, the plugin that ships this one along with the rest of its 3 skills, 1 hook.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for srt

README.md
[![agentmods](https://agentmods.dev/badge/skills/perso-ai/perso-dubbing-plugin/srt/github.svg)](https://agentmods.dev/skills/perso-ai/perso-dubbing-plugin/srt)
Your own site
<a href="https://agentmods.dev/skills/perso-ai/perso-dubbing-plugin/srt"><img src="https://agentmods.dev/badge/skills/perso-ai/perso-dubbing-plugin/srt/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for srt

Your own site · 80×15
<a href="https://agentmods.dev/skills/perso-ai/perso-dubbing-plugin/srt"><img src="https://agentmods.dev/badge/skills/perso-ai/perso-dubbing-plugin/srt.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 27 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,188 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium Output Handling · line 78
    Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.
    Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00027 $0.04188
Opus 5.5 $0.00011 $0.01675
Sonnet 5.5 $0.00005 $0.00838
Haiku 4.5 $0.00003 $0.00419

Measured 1mo ago against content hash e93c5fc91895, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

srt scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

The scan reads SKILL.md. This mod also ships 5 executable files (lib/subtitle_style.mjs, scripts/build_preset_gif.mjs, scripts/build_preview.mjs, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/srt/SKILL.md · 145 lines

How it starts

The opening of the file, as written. The whole thing — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/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 the XP-API-KEY header only.
  • One command = the whole extraction. scripts/srt.mjs handles upload · transcription · SRT download by itself.
  • Always run srt.mjs in 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-only instead 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 a next check ~Nm hint) — 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.mjs with a local video + SRT (everything except --project), and translating an SRT the user hands you.
  • This skill shares the dubbing skill's libraries: the dubbing folder must be installed next to srt (every install method ships them together; only a manual copy of the srt folder alone breaks this).

Read the full file on GitHub · 145 lines

Files

What ships with it

8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 145 lines · 27 tokens per session scan A e93c5fc91895

Subscribe to this mod's changes

srt is a skill published in the GitHub repository perso-ai/perso-dubbing-plugin (40 stars, last pushed 12d ago), licensed MIT. It adds 27 tokens to every session and 4,188 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

chinese-documentation

A Chinese technical-documentation style guide covering spacing, punctuation, numbers, terminology, and links when Chinese and English appear together.

jnMetaCode/superpowers-zh · 62 tokens

oma-translation

Translate or revise localized UI strings and prose while preserving meaning, terminology, placeholders, and structure.

first-fluke/oh-my-agent · 23 tokens

speak-human-tw

A Traditional Chinese editing guide for making public-facing writing sound more natural and less machine-generated. It also checks wording associated with Mainland China and half-width punctuation.

Raymondhou0917/speak-human-tw · 220 tokens

page-metadata

When the user wants a full-page metadata audit or implementation across discovery, search intent, title, description, canonical, robots, hreflang, Open Graph, Twitter Cards, code or CMS changes, build validation, rendered HTML, production verification, localization, or post-release observation. Also use for "metadata…

kostja94/marketing-skills · 116 tokens

localization-strategy

Plan, audit, implement, migrate, or validate localization for multilingual products and websites, including locale scope, market readiness, URL architecture, content coverage, hreflang coordination, rollout, and production verification. Use translation for the actual translation, glossary, and language review work.

kostja94/marketing-skills · 60 tokens

translation

Translate, transcreate, review, or maintain multilingual product and marketing content, including source locking, glossary decisions, language style, machine-assisted workflows, legal-content safeguards, QA, and source-change synchronization. Use localization-strategy for market scope, locale architecture, rollout…

kostja94/marketing-skills · 60 tokens