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

# Transcript Search

> Search only what was said, ignoring visual content.

Restrict a query to spoken words with `modes=transcript`. This searches transcribed speech only — visual content, scene labels, and on-screen text are excluded from matching.

```bash theme={null}
curl -X POST https://api.pureframe.ai/v1/search \
  -H "Authorization: Bearer pf_..." \
  -F "query=pricing discussion" \
  -F "modes=transcript" \
  -F "collection_id=col_abc123"
```

## How it works

Every video's audio is transcribed by Whisper into timestamped speech segments. Transcript search runs Postgres full-text search (`websearch_to_tsquery`) against that text — a lexical match, not a vector embedding. This means it rewards queries that share actual words with what was said: `"pricing objection"` matches a segment containing those words, but won't match a segment that expresses the same idea in different words the way visual/conceptual search can. See [Embeddings](/video-processing/embeddings) for why the two techniques are different under the hood.

## When to restrict to transcript-only

* You know the moment involved someone saying something specific, and want to avoid visual false-positives
* You're building a "search what was said" experience (meeting notes, lecture search, call review) where visual matches aren't relevant
* You want faster, more precise results on content where speech is the primary signal — talking-head interviews, voiceovers, panel discussions

For everything else, the default combined mode (see [Combined Queries](/search/combined-queries)) is usually the better choice — it catches moments whether they're identifiable by what's shown, what's said, or both.
