> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# VTT Parse

> Parse WebVTT subtitle and transcript files into plain text or structured cues

## Overview

The VTT Parse tool parses WebVTT (`.vtt`) subtitle and transcript files — such as those exported by meeting-recording and video platforms — and returns either the plain speech text or a structured array of cues with timestamps. This makes it easy to feed transcripts into summarization, translation, or analysis steps.

## Key Features

* `VTT_PARSE`
  * Parse a WebVTT file from a URL.
  * Inputs: `file_url` (URL of the WebVTT file) and `output_format` (`txt` or `array`, default `txt`).
  * `txt` returns plain speech text with timestamps and markup removed, one cue per line (`result.text`).
  * `array` returns structured cues (`result.cues`), each with `index`, optional `id`, `start` and `end` timestamps in `HH:MM:SS.mmm` format, and the cue `text`.

## Authentication

No authentication required. The tool works directly with file URLs.

### Example: Meeting Transcript to Summary

```yaml theme={null}
- id: upload_transcript
  name: upload_transcript
  tool: INPUT_FILE
  input:
    - name: description
      value: "Upload the meeting recording transcript (.vtt)"

- id: parse_transcript
  name: parse_transcript
  tool: VTT_PARSE
  input:
    - name: file_url
      value: "{{steps.upload_transcript.result.url}}"
    - name: output_format
      value: txt

- id: summarize_meeting
  name: summarize_meeting
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        Please summarize the following meeting transcript:
        1. Key discussion points
        2. Decisions made
        3. Action items with owners

        ==Transcript==
        {{steps.parse_transcript.result.text}}
```

### Example: Structured Cues with Timestamps

```yaml theme={null}
- id: parse_subtitles
  name: parse_subtitles
  tool: VTT_PARSE
  input:
    - name: file_url
      value: "https://example.com/subtitles.vtt"
    - name: output_format
      value: array
```

Each element of `{{steps.parse_subtitles.result.cues}}` contains `index`, `start`, `end`, and `text`, so downstream steps can reference specific moments in the recording.

## Notes

* Empty cues are skipped; `index` is assigned sequentially starting from 1 over the remaining cues.
* In `txt` mode, formatting markup inside cues is stripped and only the text content is kept.
* If the file cannot be downloaded (non-OK HTTP status), the tool returns a `DownloadError`; if the content is not valid VTT and no cues can be parsed, it returns a `ParseError`.
