Should I vibe code
Capture browser meeting captions, clean the transcript, and generate notes on demand
It never records you. It scrapes the captions — and the entire product hangs on a CSS class Google can rename.
?
Their verdict, the Pro price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Six entries on this site argue about recording a conversation. Tactiq gets a different one, because it does not record. It reads the caption track that Google Meet, Zoom or Teams is already rendering into the tab — a stream every participant can see running, generated by the platform, not by a microphone you opened. No bot in the participant list, no audio file, no voiceprint. That is a genuinely lower-risk architecture and it is why this lands a band below its neighbours. What replaces the recording problem is a text problem and a fragility problem. Captions are a lossy, self-revising guess: they drop negations, mangle names and rewrite their own last line, and a summary built on top inherits every error with total confidence. And the whole thing hangs off a DOM selector inside somebody else's web app, which means your version works beautifully until the Tuesday it captures nothing and does not tell you.
What actually breaks
not "if". the specific failures.
- The selector, on the day the meeting platform ships a redesign — the capture goes quiet and looks exactly like a week with no meetings
- Caption revision, because the recogniser rewrites its own last line as it hears more; append naively and you get the same sentence three times, replace naively and you lose the half that was right
- The negation, which is the specific way captions hurt you: "we can ship Friday" and "we can't ship Friday" are one dropped contraction apart and both look like a normal line in a transcript
- Names, numbers and product terms, which are exactly the tokens a general recogniser gets wrong and exactly the tokens a summary quotes
- Speaker labels, which come from whoever the platform thinks is the active speaker — so an interruption attributes one person's sentence to another, permanently, in writing
- The summarisation step, where a transcript you were careful about leaves your machine for somebody's API, usually without anyone in the meeting knowing
- Extension permissions, since anything that can read the meeting tab can read everything in that tab, and an extension that auto-updates is a supply chain you do not control
- The notice, because the platform announces that captions are on and says nothing at all about somebody keeping them
Is that you?
the verdict is a default, not a law
- The transcript stays on your machine and is for your own notes
- You say out loud, or post in the chat, that you are keeping a text record — every time, ideally automatically
- The raw caption stream is kept alongside any summary, so a claim can be checked against the source
- Nothing auto-sends, auto-shares or builds a searchable archive across meetings
- You are building the feature that hides the in-meeting notice, which is the only signal other people get
- The transcript is treated as a record of what was agreed rather than a rough aid to memory
- You are quoting it verbatim to someone who was not in the room
- It runs on calls with customers, candidates or anyone who did not know it was there
If you build it anyway
the checklist, then the prompt that enforces it
- Announce it. Post a line in the meeting chat when capture starts, automatically, and never build the setting that turns that off.
- Store the raw caption lines with timestamps, forever separate from any cleaned or summarised version. A summary you cannot check against its source is a rumour with a timestamp.
- Handle caption revision explicitly: key each caption block by its element identity, replace in place, and reconcile at the end. Test against a recording of your own screen before trusting it.
- Render every line as provisional in the UI — this is a machine guess at what was said, and treating it as a quote is where the harm starts.
- Add a heartbeat: if an active meeting produces no captions for a few minutes, alert loudly. Silent capture failure is the most likely bug and the hardest to notice.
- Request the narrowest host permissions the manifest allows — the meeting domains only, never all URLs — and pin any third-party library rather than tracking latest.
- If a model summarises, name the provider on screen, keep the call opt-in per meeting, and set a short default retention on both transcript and summary.
I am building a browser extension that captures the live captions a meeting platform already renders, cleans them up and summarises them. Treat the caption stream as untrustworthy and the extension permissions as the sharp edge.
1. Build the notice first. When capture starts, post a message in the meeting chat
saying a text record is being kept. Refuse to build a setting that suppresses
it, and tell me that the platform's caption indicator does not say this.
2. Request the narrowest host permissions possible — the specific meeting domains,
never all URLs. Justify each permission in the README in one line.
3. Persist the raw caption lines with timestamps and speaker labels exactly as
received, in append-only storage, before any cleaning. Cleaned text is derived
and disposable; the raw stream is the evidence.
4. Handle revision properly: captions rewrite themselves as the recogniser hears
more. Key each block by element identity, replace in place, and show me a test
over a real captured session proving no duplication and no lost text.
5. Add a heartbeat that alerts me when an active meeting produces no captions for
three minutes. Say plainly that silent breakage after a platform redesign is
the failure mode, and that it looks identical to a quiet week.
6. Treat speaker labels as guesses. Render them as provisional, make them
editable, and never let one enter a summary as an attributed quote.
7. Warn me in the UI that captions drop negations and mangle names and numbers.
Any summary must link each claim back to the caption lines it came from.
8. Summarisation is opt-in per meeting, names the provider on screen, and never
runs automatically. Ask me before sending anything to an API.
9. Set a default retention period and enforce it with a job. Deletion clears the
raw stream, the cleaned transcript, the summary and any cached embeddings.
10. Do not build auto-share, auto-email, cross-meeting search or an org-wide
archive. If I ask, tell me those are the features that turn this into the
MeetGeek entry and carry a different verdict.
11. Pin third-party dependencies and keep the extension's update path minimal. An
extension with read access to my meeting tab is a supply chain.
12. Out of scope on purpose: audio capture of any kind, joining meetings as a
participant, and any analytics about named individuals.That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
Meetings with customers, candidates or anyone outside your team. About $8 a seat a month billed annually buys caption capture that survives platform redesigns, retention controls, a data processing agreement your legal team can read, and — importantly — somebody else maintaining the fragile part. Build your own for your own calls, keep it local, and accept that you are signing up to fix it whenever Meet ships a release.
$8/mo is cheaper than your weekend.
Write the raw caption stream to a plain timestamped text or JSONL file per meeting, in a folder you control, with the summary as a sibling markdown file. Nothing about this format depends on the extension continuing to work, which matters more here than usual: the extension is the part most likely to stop functioning without warning. Keep one delete-by-meeting command so clearing a record clears every derived file with it.
Open-source Chrome extension that saves Google Meet transcripts from the native captions, with Zoom and Teams in beta.
The other architecture entirely: local speech recognition over captured audio, with all the consent questions that brings back.
Questions
Why is this DEMO ONLY when Granola, Fireflies, Otter and MeetGeek are all YOUR FUNERAL?
Because it does not record. Those tools capture audio, or send a participant into the call to do it, and the resulting file is the thing that consent law, retention policy and opposing counsel all care about. Tactiq's architecture reads a caption track the platform is already showing to everybody in the room. That is still a record of what people said and it still deserves an announcement, but it is a text artefact derived from something visible, not a recording nobody knew was running.
So there is no consent question at all?
There is a smaller one. In the US, wiretap and eavesdropping statutes generally attach to intercepting or recording a communication, which is why the recording entries here spend so long on per-state consent — a caption-derived text log sits further from that, though nobody should treat a webpage's summary as legal advice. Under the GDPR the analysis is simpler and unchanged: storing what identified colleagues said is processing personal data and needs a lawful basis and a retention period, whether or not there is an audio file.
Is scraping captions actually reliable enough to build on?
For your own notes, yes. As a record of what was agreed, no. Live captions are optimised for latency, which means they revise themselves, drop short words including negations, and attribute overlapping speech to whoever the platform thinks holds the floor. Keep the raw stream, treat every line as provisional, and never paste a caption-derived sentence into an email as a quotation.
- RCFP — Reporter's Recording Guide (US, per-state consent rules)
- GDPR Art. 6 — lawfulness of processing (EU)
- GDPR Art. 5 — principles relating to processing of personal data (EU)
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
A transcript of a call someone didn’t know was recorded isn’t a side project. It’s evidence.
Whisper never says "I couldn't hear that". It writes a plausible sentence instead, and your archive keeps it forever.
Talk-time and sentiment scores on named colleagues, kept forever and auto-emailed. That isn't notes, it's monitoring.
last reviewed 2026-08-04 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice