How it works.
Four steps, and you only do the first one.
- 01
Connect
You paste a Vimeo personal access token. It's read-only — captions, titles and ids — and it's encrypted before it's stored. Nothing is ever uploaded or changed on your Vimeo account.
- 02
Ingest
A worker walks the library and, for each video, pulls the caption track Vimeo is already storing. Videos without one are skipped and counted, so you can see what's missing rather than wonder.
- 03
Index
Each transcript is cut into passages short enough to be about one thing, and every passage keeps the timecode it came from. Those go into Postgres as vectors, which is what makes “where did we talk about…” a question you can ask.
- 04
Ask
A question retrieves the closest passages from across the whole library, and the model answers from those and nothing else. It writes [1], [2] markers rather than URLs, and they're resolved here — so a citation can't point at a video that doesn't exist.
What it doesn’t do
It doesn’t transcribe. Vimeo Chat reads captions that already exist. A video with no caption track has nothing to index, and no amount of connecting will change that — if your library isn’t captioned yet, vimeo-recaption does that part first, and then this works.
It doesn’t watch the video. Everything it knows, somebody said out loud. Slides, whiteboards and screen shares aren’t in the transcript, so they aren’t in the answers.
It doesn’t guess. Answers come from retrieved passages, with the clip and timecode attached. When the library doesn’t cover something, the honest answer is that it doesn’t.