Subtitle QC – SRT/VTT Compliance Checker avatar

Subtitle QC – SRT/VTT Compliance Checker

Pricing

from $40.00 / 1,000 subtitle file checkeds

Go to Apify Store
Subtitle QC – SRT/VTT Compliance Checker

Subtitle QC – SRT/VTT Compliance Checker

Validate SRT and VTT subtitle files for reading speed, line length, timing, overlaps, gaps, and formatting. Get a detailed compliance report and, when safe, an automatically corrected subtitle file with all remaining issues clearly listed.

Pricing

from $40.00 / 1,000 subtitle file checkeds

Rating

0.0

(0)

Developer

François Fernandez

François Fernandez

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Automatically check subtitle files before delivery. Upload SRT or VTT files and receive a structured quality report covering reading speed, line length, line count, timing, overlaps, gaps, and common formatting problems.

When Check and correct is selected, the Actor also produces a corrected subtitle file when it can make safe, measurable changes. It never rewrites dialogue or translation content. Every generated file is then checked again, so the report clearly separates the original problems from the issues that still require manual review.

Common uses

  • Post-production quality control before client or broadcaster delivery
  • Localization vendors checking files received from translators
  • Video platforms screening subtitle uploads
  • Agencies enforcing consistent subtitle specifications across a batch
  • Automated Make, Zapier, API, or agent workflows

Input

FieldTypeInitial valueDescription
filesarrayemptyUpload SRT/VTT files or select Key-Value Store records.
fileUrlsarrayemptyDirect HTTP(S) file URLs.
kvsKeysarrayemptyKeys already stored in the run's default Key-Value Store.
examplestringclean in ConsoleBundled example used only when no real file is supplied.
profilestringdocumentaryDocumentary, social, accessibility, or custom thresholds.
specOverridesobject{}Override CPS, line length, duration, and gap thresholds.
correctionModeselectcheck-only in ConsoleChoose checking only or checking plus safe automatic correction.
maxCostUsdnumber1.50Additional safety cap checked before custom event charging.

Correction modes

  • check-only: produces the report only.
  • check-and-correct: requests a corrected file. The correction event is charged only when a genuinely changed file is produced. A compliant file therefore remains a $0.04 check even if correction was requested.

What is checked

  • Maximum lines per cue
  • Maximum displayed characters per line
  • Reading speed in characters per second, including CJK-aware width
  • Minimum and maximum cue duration
  • Overlapping cues
  • Gaps that are too short
  • Leading, trailing, and repeated whitespace
  • Malformed or empty subtitle blocks

Automatic corrections

Safe correction can:

  • Normalize whitespace
  • Reflow lines without rewriting words
  • Remove empty cues
  • Trim overlaps
  • Create the requested minimum gap when this does not create a new timing or reading-speed error
  • Extend durations when sufficient room exists
  • Cap overly long durations when the resulting reading speed remains compliant
  • Renumber cues after a real change
  • Reanalyse the exact corrected output before delivery

Text that cannot fit within the selected specification without changing the edit is marked for manual splitting instead of being falsely labelled as corrected. The final report includes both Issues detected in input and Issues remaining after automatic correction.

Secure file delivery

Generated reports and corrected subtitle files are stored in the run's private key-value store. Open the run's Storage > Generated files tab to download them. API users fetch the listed storageKey from the run's default key-value store with their own Apify token. The Actor deliberately does not expose unsigned API links.

Output

Each run stores:

  • A structured OUTPUT JSON record
  • A dataset overview
  • A Markdown compliance report
  • A corrected SRT/VTT file only when requested and genuinely changed

Example result:

{
"status": "ok",
"metrics": {
"filesProcessed": 1,
"errors": 9,
"warnings": 3,
"compliant": false,
"finalErrors": 6,
"finalWarnings": 1,
"finalCompliant": false,
"correctionMode": "check-and-correct",
"correctedFilesProduced": 1,
"correctedFilesNeedingManualReview": 1
},
"postCorrectionIssues": [
{"code": "CPS_TOO_HIGH", "severity": "error", "message": "Reading speed remains above the selected limit.", "location": {"file": "messy.srt", "artifact": "messy.corrected.srt", "cue": 1}}
],
"artifacts": [
{"name": "messy.corrected.srt", "kind": "corrected", "storageKey": "subtitle-qc-messy.corrected.srt", "access": "authenticated"},
{"name": "report.md", "kind": "report", "storageKey": "subtitle-qc-report.md", "access": "authenticated"}
],
"billing": {
"events": {"file-checked": 1, "file-corrected": 1},
"costUsd": 0.07
}
}

Accepted files

  • SRT and WebVTT
  • Up to 20 files per run
  • Up to 8 MB per file and 32 MB combined per run

Social platform page links such as YouTube, TikTok, Instagram, Facebook, or X are not accepted. Use an uploaded subtitle file or a direct file URL.

Pricing

This Actor uses Pay per event.

EventPriceCharged when
file-checked$0.04A valid SRT/VTT file is parsed and analysed.
file-corrected$0.03A genuinely changed corrected file is produced.

Typical custom-event totals:

  • Compliant file, report only: $0.04
  • Compliant file with correction requested but no change needed: $0.04
  • Non-compliant file with a corrected file produced: $0.07
  • Unreadable file with no subtitle cues: $0.00 custom events

The small automatic Actor-start event is configured separately in Apify Console. Platform usage is included according to the Actor's pricing setup.

Bundled test examples

  • clean: compliant SRT, report only
  • messy: non-compliant SRT with correctable problems
  • vtt_social: WebVTT checked against the social profile
  • invalid: invalid SRT content used to test error handling

Real uploaded files always take priority over bundled examples.

Limitations

This Actor does not check spelling, translation accuracy, dialogue meaning, shot-change alignment, or positioning tags. Automatic correction is deliberately conservative and never rewrites words. A generated file can therefore remain non-compliant when the available timing is physically insufficient; those remaining issues are explicitly listed instead of being hidden.

Support

Include the Apify run ID and a minimal reproducible input when reporting a problem.