Did every lesson get its caption file?

A subtitle validator can check selected files without knowing which lessons your course was meant to include. Start with an explicit expected lesson list, then compare it with what you selected.

Try a complete course review

  1. Open the local demo. Load ten-lesson example and Run review.
  2. Initial coverage: eight provided, two required missing, one optional absent, one renamed unmatched. Two intro.srt files live in different folders and remain distinct.
  3. Review the two Node JS hints in L05. The ordinary verb react in L06 demonstrates a legitimate false positive: save a reasoned suppression after checking its context.
  4. L07 has a malformed timestamp. L08 overlaps legitimately in WebVTT and receives only a policy warning. L09 uses valid REGION/settings outside our documented subset. Use a broader editor for that lesson.
  5. Map L02 deliberately to setup-renamed.srt, rerun, and observe nine provided, one required missing, no unmatched and a third terminology hint. Earlier decisions clear because the mapping changed.
  6. Export the receipt. It retains blockers and the exact file/settings hashes. It stays incomplete; a download is not certification. The synthetic fixture has no video, so do not acknowledge video review.

Review your own files

The free edition supports a one-file cue review and custom multi-file course coverage preview. That preview does not inspect your course's cue contents or export course-review decisions. The private full experimental package adds complete local course review, reusable written decisions and original workflow/source documents. It is not available for checkout yet.

Choose a caption folder to retain relative paths; the selected root folder is removed. Individual selections keep only basenames. Supply explicit expected paths and required booleans. Two identical selected paths are ambiguous; the app never guesses which lesson they belong to.

VTT upload errors versus review warnings

Check the WEBVTT header, blank separator and timestamp syntax first. Minutes and seconds are 00–59, with three fractional digits. Overlap alone is not malformed WebVTT. Our plain-text subset reports settings, markup, STYLE and REGION as unsupported, not automatically invalid.

Read the WebVTT specification for format details. Udemy's caption upload guidance describes per-lecture VTT uploads; its review guidance discusses technical terms and acronyms. These sources establish a task, not demand for our product.

When a free alternative is enough

Subtitle Edit's free CLI supports batch lint and JSON output. A spreadsheet exact-path join plus literal Find All can reproduce expected-course coverage and term detection. Subtitle Doctor handled all nine synthetic files in a browser batch test. Use them if they suit your workflow. CaptionCheck's narrow experiment combines expected paths, contextual decisions and exact-byte receipts; it does not claim unique subtitle validation.

Download once, review locally

Get the free MIT example and portable preview. No API key, account or paid runtime. Files stay in browser memory; exports may include sensitive cue context, so keep your own receipts private. No automatic storage or analytics.