{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://api.weftly.ai/.well-known/weftly-transcript-v2.schema.json","title":"Weftly Transcript v2","description":"Word-level transcript output. Produced by the `words` value of the `TranscriptFormat` enum on `transcribe` and `summarize` jobs. Carries both segment-level timestamps (for UI playback sync) and per-word timestamps (for precise video editing, clip extraction on word boundaries, and subtitle sync).","type":"object","required":["format","segments","words"],"additionalProperties":false,"properties":{"format":{"type":"string","const":"weftly-transcript-v2","description":"Document format tag. Always the literal string \"weftly-transcript-v2\"."},"segments":{"type":"array","description":"Segment-level transcript entries matching the SRT output. Useful for UI playback where 1-5 second chunks are the natural unit.","items":{"type":"object","required":["index","start","end","text"],"additionalProperties":false,"properties":{"index":{"type":"integer","minimum":1,"description":"1-based segment index matching SRT numbering."},"start":{"type":"number","minimum":0,"description":"Segment start time in seconds from the start of the media."},"end":{"type":"number","minimum":0,"description":"Segment end time in seconds. Always >= start."},"text":{"type":"string","description":"Segment text (trimmed, no leading/trailing whitespace)."}}}},"words":{"type":"array","description":"Per-word timestamps from Whisper. Timestamps are monotonic non-decreasing and map to the same media timeline as `segments`. Use these when cutting video on word boundaries or building interactive transcript editors.","items":{"type":"object","required":["word","start","end"],"additionalProperties":false,"properties":{"word":{"type":"string","description":"The word as recognized by Whisper. May include surrounding punctuation."},"start":{"type":"number","minimum":0,"description":"Word start time in seconds from the start of the media."},"end":{"type":"number","minimum":0,"description":"Word end time in seconds. Always >= start."}}}}}}