Corpus
The current native corpus contains 200 unique public, processed YouTube videos from seven established channels. Each video had the YouTube Data API caption flag at the time the corpus was built. The repository stores video identifiers and expectations, never complete transcript text.
Execution
The production runner sends three concurrent native requests and waits 1.6 seconds between requests from each worker. The September 3 run deliberately kept the shared cache active, so the result measures the deployed API as users receive it. Separate fixtures exercise captionless generation and worker isolation.
Metrics
The historical runner records HTTP status and time to response headers for successful requests. It does not consume or validate successful transcript bodies. Failed JSON responses include the time needed to read their error body. A success requires the status defined by the fixture, so the published percentage measures transport success, not transcript accuracy or completeness.
Latency percentiles use the nearest-rank method over positive recorded durations. Network failures are counted as failures but excluded from latency percentiles. The run kept cache enabled and did not record a cached/uncached split. Its p50 and p95 are not cold-extraction latency measurements.
Reporting rules
Every number must refer to a dated run and a corpus version. Removed videos remain visible as unavailable fixtures instead of being silently replaced. Competitor comparisons use the same URLs, options, region and time window. Self-reported competitor statistics are not mixed with measured results.
Limits
YouTube availability varies by region, age, account state and upstream changes. A benchmark describes the observed environment and does not guarantee future extraction. This corpus was selected for available caption metadata, so it does not measure arbitrary-video coverage. The public files contain identifiers and transport results without transcript text.
The historical runner has no per-request timeout. Interrupt a stalled run and record it as incomplete. It is provided to make the published method inspectable, not as a production client. Use the bounded Node.js integration example for application code.
Download and reproduce the dated method
Download the 200-video corpus, Node.js runner and September 3 observations. Keep the corpus and runner in the same directory. The runner matches the historical implementation apart from its corpus file path. The execution notes include shell and PowerShell commands.
Supply your own API key through CAPSLANE_API_KEY. Start with five fixtures to limit usage:
RELIABILITY_FIXTURES=native-public-001,native-public-002,native-public-003,native-public-004,native-public-005 \
RELIABILITY_OUTPUT=sample.json node benchmark-2026-09-03.mjsRunning the full corpus requires 200 available transcript request units, including cached results. It does not start audio generation. Preserve all failed observations and report the date, region, concurrency and cache conditions alongside any result.
The September 6 publication makes the September 3 evidence downloadable; it does not represent a new production benchmark. The Gems case study describes the separate product integration checks.