Subtitle File Fixer
Free Agent Skill that cleans SRT and VTT caption files: overlaps, order, long lines, fast or short captions, timing shifts and SRT/VTT conversion, then shortens fast captions.
About Subtitle File Fixer
Captions exported from editors and auto-caption tools are often messy. Captions overlap and appear out of order. Some lines are 120 characters long, some flash by in half a second, some are empty, and sometimes the whole file is two seconds late. Viewers stop reading them, and they fail the people who rely on them most.
This free skill fixes the mechanical problems automatically with a bundled script. It removes overlaps and empty captions, sorts and renumbers, and splits captions that run too long, sharing the time fairly. It re-wraps lines to 42 characters and 2 lines (32 for vertical video) and gives short or fast captions more time where there's a free gap. It can shift all timing, strip formatting tags, and convert SRT to WebVTT and back. Then it lists any caption that still reads too fast. The AI shortens those, cutting fillers and repeats without changing the meaning, shows you each change, and checks again.
It never overwrites your file. Every fix is written to a new one.
Inside: SKILL.md, the fixer script (Node.js, no packages), a guidelines reference explaining the defaults, and a messy sample with fixed SRT and VTT outputs, the report, a walkthrough and test runs.
For creators, editors, course makers and anyone captioning their videos.
Limitations: it doesn't transcribe or translate. Wording changes need a person or your OK. The defaults follow common captioning practice, not platform rules.
Scanned: no issues found
Release v1.0.0 reviewed by AgentLoomX™ · 14 files · 19.5 KB
This package can
- Create, change or delete files
What's inside (14 files)
- subtitle-file-fixer/CHANGELOG.md
- subtitle-file-fixer/examples/fixed-edited.srt
- subtitle-file-fixer/examples/fixed.srt
- subtitle-file-fixer/examples/fixed.vtt
- subtitle-file-fixer/examples/messy.srt
- subtitle-file-fixer/examples/report.txt
- subtitle-file-fixer/examples/test-runs.md
- subtitle-file-fixer/examples/walkthrough.md
- subtitle-file-fixer/LICENSE.txt
- subtitle-file-fixer/README.md
- subtitle-file-fixer/references/subtitle-guidelines.md
- subtitle-file-fixer/scripts/lib.mjs
- subtitle-file-fixer/scripts/subs.mjs
- subtitle-file-fixer/SKILL.md
Read the skill's instructions subtitle-file-fixer/SKILL.md
---
name: subtitle-file-fixer
description: Cleans up SRT and WebVTT subtitle and caption files. It removes overlaps and empty captions, sorts and renumbers, splits captions that are too long, re-wraps lines (42 characters, 2 lines by default), gives short or fast captions more time where there's room, shifts all timing, strips formatting tags and converts between SRT and VTT. It reports captions that still read too fast, so their wording can be shortened. Use when the user says things like "fix my subtitles", "my captions overlap", "clean up this SRT", "convert SRT to VTT", "captions are out of sync by 2 seconds", "make my captions readable for Reels", or uploads a .srt or .vtt file.
---
# Subtitle File Fixer
Run the automatic fixes, shorten what still reads too fast, and check again.
Rules you never break:
1. **Never change the meaning.** Wording edits only shorten (fillers, repeats). Never add words that weren't said, and never change names, numbers or claims.
2. **Wording changes need the user's OK.** List each one. Timing and layout fixes are automatic.
3. **Never overwrite the user's file.** Always write a new file with `--out`.
## Bundled files
| File | When to use it |
|---|---|
| `scripts/subs.mjs` | Steps 1, 2 and 4. Reports without `--out`. With `--out`, writes a new SRT or VTT (never overwrites). Needs Node.js 18+. |
| `references/subtitle-guidelines.md` | The reasons behind the defaults, what's automatic and what's left, and vertical video tips. Read it when choosing settings. |
| `examples/` | `messy.srt`, the fixed outputs, the report, a walkthrough and test runs. |
## Step 1: Report first
```
node <skill-folder>/scripts/subs.mjs <file.srt|file.vtt> [settings]
```
Settings to consider:
- **Vertical video** (TikTok, Reels, Shorts): `--max-chars 32`.
- **Children's content:** `--max-cps 14`.
- **Out of sync:** `--shift 1.5` (later) or `--shift -0.5` (earlier). Ask the user which direction, or compare a known line's time with the video.
- **Tags that platforms don't show:** `--strip-tags`.
## Step 2: Apply the automatic fixes
```
node <skill-folder>/scripts/subs.mjs <file> --out <name>-fixed.srt (or .vtt to convert)
```
## Step 3: Fix what's left
For each "Still to look at" item:
- **Too fast:** shorten the wording, keeping names, numbers and meaning. Aim for the reading-speed limit.
- **Too short with no room:** merge it into the next caption, or drop a pure filler ("Okay.", "Um").
- **Long line with tags:** strip the tags (`--strip-tags`), or edit the line.
Edit the fixed file (a copy, never the original) and keep a list of changes for the user.
## Step 4: Check again
Run the report on the edited file until "Still to look at" is 0, or only items the user chose to keep remain.
## Step 5: Report back
1. What was fixed automatically (the counts from the report).
2. Every wording change, with old and new text.
3. The output file names. Offer a VTT copy or vertical-video settings if relevant.
**No Node.js?** For short files (under about 50 captions), fix overlaps and line lengths by hand. Say the script wasn't run.
SHA-256 e0d59125577a39839f466e361421c6fc79087ddad5c81496eaa3ba44c9a39d29
Signed with Ed25519 key a9c62a7921065aa9. Public keys
Scans catch known risky patterns; they are not a guarantee. Report anything that looks wrong to support.
Highlights
- Fixes overlaps, order and empty captions
- Splits and re-wraps long captions
- Reading speed checks and safe extensions
- Shift timing, strip tags, SRT to VTT
- Vertical video settings (32 characters)
- Never overwrites your original file
- subtitles
- captions
- srt
- vtt
- accessibility
- video editing
Keep exploring
More like this
Transcript Summarizer
by Marketplace Founder · Voice & Multimodal
Turns podcast, video and webinar transcripts into summaries, chapters, verified quotes, show notes, links and clip ideas, with real timestamps.
Marketplace Conversion Audit
by Marketplace Founder · Data Analysis & Visualization
Audits the public pages of a marketplace, store or SaaS funnel, scores them against a conversion rubric, and ranks the top blockers with concrete fixes.
AgentLoomX™ Review Watch
by Marketplace Founder · Integrations & API Tools
Reports what changed in the review state of your AgentLoomX™ listings since the last run: approvals, rejections with reasons, long waits and new releases.