# Long multilingual batch verification

Use this checklist for multi-hour audio batches that require source transcripts plus full translations.

## State model

Track each recording independently:

1. downloaded and metadata verified;
2. transcription actively processing;
3. transcription process exited successfully;
4. transcript duration verified;
5. translation incomplete / complete;
6. translation structurally verified;
7. packaged and delivered.

Do not collapse these into a single vague “processing” or “ready” state.

## Transcript completion check

For each audio:

- obtain media duration with `ffprobe`;
- require successful transcriber exit;
- extract the last transcript end timestamp;
- compare last timestamp with media duration, allowing only a reasonable trailing-silence gap;
- treat files written during processing as checkpoints.

## Translation strategy

For an hour-long timestamped transcript:

1. Split only between complete timestamped segments.
2. Keep source header separately.
3. Translate bounded chunks while preserving one timestamp per source segment.
4. Save each chunk before starting the next.
5. Assemble in timestamp order with no overlap.
6. If a worker times out, inspect its file before retrying. Determine the exact last translated timestamp and resume the missing suffix.

## Structural verification

Compare source and translation programmatically or carefully enough to establish:

- equal number of timestamped segments;
- identical ordered timestamp sequence;
- matching first and last timestamps;
- no duplicate timestamp at chunk boundaries;
- non-empty target text after every timestamp;
- no large untranslated English runs when Russian was requested.

Line count and file size are secondary signals only: translated lines may wrap differently.

## User-facing reporting

Report only verified states, for example:

- “Transcript complete and duration-checked.”
- “Checkpoint exists through 01:07:43; the process is still running, so it is not final.”
- “Translation is partial through 00:41:31; completion has resumed from the next segment.”

Do not promise autonomous completion unless a durable tracked process or scheduled job will actually continue and notify. Never say “ready” until the requested final package has been assembled and read back.