Transcript formats and imports

Files must be UTF-8. A selected file replaces pasted text for that import. You can keep eight transcripts per proposal, each up to 1 MB, 250,000 characters and 2,000 segments. A segment may contain up to 8,000 characters. Oversized inputs are rejected, not silently shortened.

Plain text and speaker text

Use Plain text for notes or ambiguous text. It preserves colon labels and timestamps as text. Choose Speaker text when each speaker turn begins with a name and colon. Timestamp prefixes are optional.

[00:12] Morgan: We need a new contact form.
[00:24] Taylor: We could deliver after approval.

Speaker mode interprets a leading label such as “Budget:” as a speaker name. Choose plain text if those are headings. Check parsed segments after importing.

SRT and WebVTT

SRT needs numbered cues and start/end timestamps. WebVTT needs a WEBVTT header. Known subtitle markup and basic entities are normalized in the readable segments; the original retained text remains available. Multiple named speakers in one WebVTT cue are rejected. Notes, style and region blocks are retained in the source but excluded from segments.

Timestamped JSON

Use exactly this structure. Start and end are seconds with up to millisecond precision, or both null for untimed text. Extra fields are rejected.

{
  "segments": [
    {"speaker": "Morgan", "start": 12, "end": 20.5,
     "text": "We need a new contact form."}
  ]
}

Timed cues must be in nondecreasing start order, have an end after the start, and stay within 48 hours. Overlapping cues are allowed.

What source fingerprints mean

The app retains imported text and a SHA-256 fingerprint of its UTF-8 text representation. It is not a fingerprint of the original file bytes, a verified identity, or proof that the speaker agreed. Exact excerpts link findings to source segments. Review the surrounding context before including a finding.

Continue to evidence review →