Blog

How to search video by spoken words

You need a transcript with timestamps on it. Every method comes down to that: run the audio through speech-to-text, keep a timecode on every line, search the text, jump to the time. Methods differ in two places, which is where all the real choices are. One is how the transcript gets made. The other is whether search matches the exact string you typed or the meaning behind it. Here is what works, starting with the free option.

The free version

If the video is on YouTube, open the transcript panel and use ctrl-F. If it is not published, run the file through a local speech-to-text model and export an SRT or VTT. Then search the file in any text editor and use the timecode to scrub straight to the moment. For one video, or twenty, this is the whole answer and you should not spend money on it.

The usual complaints are fixable. Product names and people's names come out mangled, so feed the tool a glossary if it accepts one. Crosstalk and heavy accents degrade the output, and a second pass with a larger model usually cleans it up.

Where matching on words runs out

You remember what someone meant, not the words they used. Somebody said "we have never had one come back to us," you search for "warranty," and you get nothing. String search only finds the string. Synonym expansion helps a little and does nothing for paraphrase.

Then there is everything that was never spoken out loud. The wide shot of the plant floor, or the beat where the interviewee finally stops performing and starts talking. A transcript cannot see either one, so half of what people go looking for is outside its reach.

Long recordings make both problems worse. Webinars, panels, and podcast episodes run an hour or two, and the transcript runs twenty thousand words. Grep hands you thirty hits with no way to rank them, so you scrub. The pain there is usually not locating a candidate. It is reviewing thirty candidates to find the one worth using.

Doing it yourself

The serious DIY stack exists and is well trodden. Use a speech-to-text model that gives word-level timestamps and speaker labels, chunk the output, then put it behind full-text search for exact matching or behind embeddings for meaning-based matching. Someone who has built this before needs a couple of weekends.

Archives are where people hit the wall. Several hundred podcast episodes with a per-episode transcription bill gets expensive, and the thing you have bought is still a folder of documents you read by hand. That is the moment the build-versus-buy question gets real, and the answer depends on whether anyone will still own the pipeline in eighteen months.

Tools built to retrieve from footage

Vivu sits here. It searches by content across the material a team already has and returns precise time points with the context around them, so you can tell which result is the one you want without opening all of them. Each file is indexed once when it enters the library, not reprocessed per query. It connects to the storage you already use and does not ask you to restructure files first. Vivu does not edit or generate video; the job is finding the moment in footage that exists. Material stays private and access is yours to control. It works inside existing workflows through MCP, and there is an API, though setup does not need a developer.

When you don't need this

If everything you search is already published on YouTube, the built-in transcript plus ctrl-F covers it. If your library is small enough that you can name every file from memory, a naming convention will serve you better than any search layer. And if you know roughly where the moment is before you start looking, scrubbing is faster than typing a query. What changes the math is volume plus frequency: many hours of material, searched often, by people who were not in the room when it was shot.

The way to find out which side of that line you are on is to try it against your own archive. Vivu's demo is 30 minutes, on your footage.