Subtitle Delivery QC
Pricing
$100.00 / 1,000 completed reports
Subtitle Delivery QC
Check simple SRT or WebVTT subtitles for numbering, timing, overlaps, reading rate, line length and media-duration overruns. Get one complete deterministic report. Restricted basic-cue profiles; no transcription, translation, repair or media inspection.
Pricing
$100.00 / 1,000 completed reports
Rating
0.0
(0)
Developer
Picknotes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Check one SRT or WebVTT basic-cue subtitle file for numbering, timing, overlaps, reading rate, line length and endpoints beyond a supplied media duration. Get one complete JSON report with a row for every cue. Reports with findings are completed reports too. This tool does not transcribe, translate, repair, render, inspect media, or certify accessibility or full WebVTT conformance.
Quickstart
For the bundled synthetic SRT example, use:
{"useDemo": true}
For your own simple SRT file, use:
{"useDemo": false,"authorizedNonpersonalNonconfidentialData": true,"subtitleText": "1\n00:00:00,000 --> 00:00:02,000\nHello world\n","optionsJson": "{\"profile\":\"srt-basic/1\",\"duration_ms\":6000,\"max_cps_milli\":17000,\"max_line_chars\":42}"}
For WebVTT use profile webvtt-basic/1 and an exact WEBVTT header followed by
an empty line. Use plain cue timing and text only. Cue identifiers, settings,
NOTE/STYLE/REGION blocks, markup and entities are unsupported. SRT requires
positive cue numbers and HH:MM:SS,mmm timestamps. WebVTT uses decimal points.
Both profiles accept LF or CRLF and an optional initial UTF-8 BOM. Unsupported
syntax rejects the entire input; it is never silently discarded.
optionsJson is a JSON string containing an object, not an embedded object.
profile is required. Optional duration_ms, max_cps_milli and
max_line_chars must be exact integers or null. Omission/null disables that
check. A rate of 17000 means 17 code points per second. Duration is 0–359999999
milliseconds, rate is 1–1000000, and line threshold is 1–4096.
Counts are Unicode code points, not visual width or graphemes.
Limits
- Subtitle: 1,048,576 UTF-8 bytes; options: 4,096 UTF-8 bytes
- At most 10,000 cues and 4,096 code points per cue including internal line breaks
- Complete report: at most 2,097,152 bytes
- Raw Actor input envelope and complete dataset POST: each at most 4,500,000 bytes
- All limits apply together. Escaping can make the envelope larger than the subtitle.
- Processing is bounded: 50-second entry deadline and 10-second private worker deadlines.
No partial report is returned on rejection, timeout or output overflow. Overlap findings provide one deterministic witness per affected cue, not every pair.
Results and price
The default dataset receives at most one item containing the full canonical
report in reportJson, report byte length and SHA-256, input hashes and a
completion receipt. Parse reportJson as JSON to read the report. ok and
issues are both complete reports and use the same completed-report price:
USD 0.10, including platform usage; check the Actor's displayed pricing
before running. The receipt's expected price is not proof of configured billing,
a charge or settlement.
A delivery is confirmed only after exact dataset readback. An interrupted or unconfirmed append may already have been accepted and billed. Check the run and dataset before deciding what to do; never automatically repost an uncertain run.
Input privacy
Apify stores INPUT before processing. Submit only data you have rights to process that is nonpersonal and nonconfidential, without credentials or secrets. Own mode requires the explicit authorization flag. Demo mode requires no customer content. Reports omit cue text but retain timing, counts, ordinals and source hashes. This is not anonymization, secret scanning or a storage/deletion guarantee.